перезапустить программу, когда она сбой / закрытие

Другой ответ велик! Но для этого требуется root cron.

Если вы хотите спящий режим из non-sudo cron, есть 2 варианта:

1. Использование polkit

Создайте файл, содержащий следующее:

[Enable hibernate to be run via cron]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=yes 

с именем com.0.enable-hibernation-from-cron.pkla в каталоге /etc/polkit-1/localauthority/50-local.d/.

Пояснение дано Другой ответ .

2. Использование polkit

Цитата из этого:

Если пользователям разрешено использовать команды останова, но не иметь других привилегий sudo, то, как root, добавьте следующее в конец /etc/sudoers с помощью команды visudo.
user hostname =NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot
Подставьте user для вашего имени пользователя и hostname для имени хоста машины. Теперь ваш пользователь может завершить работу с sudo systemctl poweroff и перезагрузиться с помощью sudo systemctl reboot. Пользователи, желающие отключить систему, также могут использовать sudo systemctl halt. Используйте тег NOPASSWD: только если вы не хотите получать запрос на ввод пароля.

В моем случае точная строка:

anmol ALL=NOPASSWD: /bin/systemctl hibernate  

(обратите внимание, что расположение systemctl может отличаться в вашей системе.)

После этого вы можете записать sudo systemctl hibernate fron cron в спящий режим.

Примечание. Прямая модификация /etc/sudoers здесь здесь ; вместо этого создайте пользовательский файл sudoers под /etc/sudoers.d/, используя команду - sudo visudo -f /etc/sudoers.d/custom.

2
задан 23 May 2018 в 19:56

2 ответа

Вы можете запустить программу в качестве демона, используя команду daemon, которая запускает программу в фоновом режиме, и автоматически перезапустит ее, если она умрет (используя параметр --respawn):

daemon --name="yourservicename" --respawn --output=yourlog.txt yourprogram

Чтобы остановить демон:

daemon --name="yourservicename" --stop

Для установки демона:

sudo apt-get update sudo apt-get install daemon
4
ответ дан 17 July 2018 в 13:37

Вы можете запустить программу в качестве демона, используя команду daemon, которая запускает программу в фоновом режиме, и автоматически перезапустит ее, если она умрет (используя параметр --respawn):

daemon --name="yourservicename" --respawn --output=yourlog.txt yourprogram

Чтобы остановить демон:

daemon --name="yourservicename" --stop

Для установки демона:

sudo apt-get update sudo apt-get install daemon
3
ответ дан 20 July 2018 в 13:42

Другие вопросы по тегам:

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