4

У меня есть резервный скрипт, который выполняется ежедневно с помощью задания cron. Это копирование с FTP-серверов и подключенных жестких дисков USB, баз данных и т.д.

В конце сценария я хочу перезагрузить компьютер с Linux, поэтому я вставил в конец сценария:

reboot

Но если на следующий день набрать uptime, то обнаружится, что он не перезагрузился. Задание cron выполняется пользователем root, поэтому мне не нужно ставить sudo или su перед командой afaik. Поэтому вместо этого я попробовал другие варианты команды, такие как:

shutdown -t 10 -r
shutdown -r now
/sbin/shutdown -t 10 -r
/sbin/shutdown -r now
/sbin/reboot

Одна попытка за раз, конечно, не все вышеперечисленные 5 строк друг за другом. ПК просто не перезагружается.

У кого-нибудь есть идеи по этому поводу?

2 ответа2

1

Адский способ перезагрузки это использовать

reboot -f

Но это перезагрузит ваш компьютер через 3 секунды без изящной остановки каких-либо служб / приложений, так что вы можете подумать о другом.

Также shutdown может не распознать аргумент "-t", взяв вместо этого аргумент time:

shutdown -r 10 //reboot in 10 minutes

В любом случае отключение человека может пригодиться. Похоже, что выключение не принимает ничего, кроме минутного разрешения, но ваш пробег может отличаться.

0

Разрешить перезагрузку для пользователя, использующего visudo

your_username ALL= /sbin/reboot

В вашем скрипте измените reboot на sudo reboot

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .