Назад | Перейти на главную страницу

Завершение работы сервера в фоновом режиме с использованием PHP

Я пытаюсь выключить машину Ubuntu с помощью PHP, и у меня возникла проблема, если я хочу отложить выключение.

Я использую строку PHP:

exec("sudo shutdown -h +5 &", $output);

Где 5, однако, много минут в будущем, я хочу выключиться.

Моя проблема в том, что это не будет в фоновом режиме, и Apache зависает до тех пор, пока машина не выключится или кто-то другой не отменит выключение. shell_exec () имеет тот же результат.

Есть ли другой способ сделать это немедленно?

Я категорически против того, чтобы разрешить повышение привилегий уровня 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');