我在CentOS上运行Apache服务器,并希望能够使用以下命令从受保护的页面重启Web服务器:
PHP:
<?php
ignore_user_abort(true);
shell_exec('sh sh/restart.sh');
?>
restart.sh:
service httpd restart
我的问题是,如果Web服务器关闭并且PHP停止执行,sh脚本是否会继续运行以使Web服务器重新联机?
答案 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()。