使用 PHP 在后台关闭服务器

使用 PHP 在后台关闭服务器

我正在尝试从 PHP 关闭一台 Ubuntu 机器,但如果我想延迟关机,就会遇到问题。

我使用的 PHP 行是:

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

其中 5 代表我想要关机的未来几分钟。

我的问题是,这不会在后台运行,并且 Apache 会挂起,直到机器关闭或其他人取消关机。shell_exec() 有相同的结果。

有没有其他方法可以立即返回?

答案1

我强烈反对允许你的设置提升 sudo 级别权限……

无论如何:

将“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');

相关内容