Завершение работы сервера в фоновом режиме с использованием PHP
Я пытаюсь завершить работу компьютера с Ubuntu из PHP, и у меня возникает проблема, если я хочу отложить завершение работы.
Я использую строку PHP:
exec("sudo shutdown -h +5 &", $output);
Где 5, однако, много минут в будущем, я хочу выключить.
Моя проблема в том, что это не работает в фоновом режиме, и Apache зависает до тех пор, пока компьютер не выключится или кто-то еще не отменит отключение. shell_exec() имеет тот же результат.
Есть ли другой способ сделать это, который сразу же вернется?
1 ответ
Решение
У меня есть серьезное несогласие с разрешением повышения привилегий уровня sudo для вашей установки...
Anywho:
Бросить sudo shutdown -h в файл сценария.
Тогда беги at
(Планировщик)
at -f /shutdown/script `date +%H:%M --date "now + 5 minutes"`
Поскольку вы используете PHP, возможно, имеет смысл сделать расчет времени в PHP:
$time = date('H:i', strtotime('+5 minutes'));
exec('at -f /shutdown/script $time');