Завершение работы сервера в фоновом режиме с использованием 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');
Другие вопросы по тегам