Другой ответ велик! Но для этого требуется root cron.
Если вы хотите спящий режим из non-sudo cron, есть 2 варианта:
Создайте файл, содержащий следующее:
[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/.
Пояснение дано Другой ответ .
Цитата из этого:
Если пользователям разрешено использовать команды останова, но не иметь других привилегий 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.
Вы можете запустить программу в качестве демона, используя команду daemon, которая запускает программу в фоновом режиме, и автоматически перезапустит ее, если она умрет (используя параметр --respawn):
daemon --name="yourservicename" --respawn --output=yourlog.txt yourprogram
Чтобы остановить демон:
daemon --name="yourservicename" --stop
Для установки демона:
sudo apt-get update
sudo apt-get install daemon
Вы можете запустить программу в качестве демона, используя команду daemon, которая запускает программу в фоновом режиме, и автоматически перезапустит ее, если она умрет (используя параметр --respawn):
daemon --name="yourservicename" --respawn --output=yourlog.txt yourprogram
Чтобы остановить демон:
daemon --name="yourservicename" --stop
Для установки демона:
sudo apt-get update
sudo apt-get install daemon