В чем разница между nohup и crontab?

Если loginctlзнает о ваших сеансах, вы можете использовать этот (рифф Как вернуть текущего активного пользователя/сеанс в сеанс графического рабочего стола Linux?):

for sessionid in $(loginctl list-sessions --no-legend | awk '{ print $1 }')
do loginctl show-session -p User -p Type -p Remote $sessionid | sort
done |
awk -F= '/Type/ { type = $2 } /Remote/ { remote = $2 } /User/ && remote == "no" && type == "tty" { sessions++ } END { print sessions }'

будет подсчитывать количество не -удаленных сеансов tty, открытых в данный момент.

-1
24.01.2021, 20:30
1 ответ

Если вы запускаете скрипт Python через nohup, он запускается только один раз. Так что скрипт сам должен работать в бесконечном цикле и повторять удаление каталога каждый час.

Кроме того, если ваш скрипт по какой-либо причине дает сбой и прекращает работу, или он был убит, он не перезапустится сам по себе -вы должны перезапустить его вручную. Вы также не будете знать, что ваш скрипт больше не работает (, за исключением периодической проверки списка процессов или созданного вами выходного файла ).

Если вы настроите задание cron для запуска каждый час, то это задание будет автоматически повторяться вечно. Даже если он выйдет из строя один раз, он будет запущен снова в следующем часе.

Кроме того, если в вашей системе настроена почта (, у вас установлен и настроен какой-либо MTA ), тогда любой вывод, созданный заданием cron (, если таковой имеется ), будет отправлен вам по почте. Поэтому, если ваша работа обычно не производит никакого вывода, почты не будет; но если это не удастся и появится сообщение об ошибке, оно будет отправлено вам по почте.

Для меня это основные отличия.Поэтому, на мой взгляд, задание cron более надежно, чем просто запуск сценария в фоновом режиме через nohup.

1
18.03.2021, 22:34

Теги

Похожие вопросы