重新启动 httpd 会终止从 PHP 执行的脚本

重新启动 httpd 会终止从 PHP 执行的脚本

我的游戏服务器有一个自定义的 PHP 管理界面,可以通过使用 和 运行启动 shell 脚本来手动运行exec服务器sudo -E。但是,如果我使用 重新启动 httpd service httpd restart,脚本和实际的游戏服务器也会被杀死。我怎样才能改变这种行为,以便只有网络服务器被杀死,或者以其他方式运行游戏服务器?

答案1

我曾经通过编写一个拥有和控制游戏服务器的 Perl 守护进程来解决我的游戏服务器的这个问题,并向外部世界提供一个 Web 服务。简单地说,但有效。

答案2

当您访问网页(PHP 脚本)时,内容由 httpd 服务器进程的一个实例(子进程)发送。当您重新启动 httpd 服务器时,脚本会通知服务器终止,这也会终止所有子进程,包括运行脚本本身的 PHP 实例。基本上这个剧本实际上是在自杀。

尝试使用“apachectl -k 优雅”这将优雅地重新启动服务器,这意味着只有服务器进程将被重新启动,但当前会话将被允许完成。你的脚本不应该消失。

相关内容