Apache关闭后的PHP?

时间:2012-11-04 19:09:17

标签: php apache centos

我在CentOS上运行Apache服务器,并希望能够使用以下命令从受保护的页面重启Web服务器:

PHP:

<?php
ignore_user_abort(true);
shell_exec('sh sh/restart.sh');
?>

restart.sh:

service httpd restart

我的问题是,如果Web服务器关闭并且PHP停止执行,sh脚本是否会继续运行以使Web服务器重新联机?

3 个答案:

答案 0 :(得分:0)

你应该没问题,因为在命令发出之后Apache才会关闭。但如果您真的想要安全,请使用nohup

shell_exec('nohup sh sh/restart.sh');

答案 1 :(得分:0)

如果您的PHP作为apache模块运行,那么一旦您杀死httpd,您的脚本将立即终止。因此,您需要将重新启动委派给命令行脚本(使用exec()shell_exec()调用)

答案 2 :(得分:0)

您可以添加&amp;在命令的最后。这将分叉进程并在后台运行它。这样它就不会依赖于仍在运行的apache。

shell_exec('sh sh/restart.sh &');

如果这样可行,则不需要ignore_user_abort()。