httpdを再起動すると、PHPで実行されたスクリプトが終了します。

httpdを再起動すると、PHPで実行されたスクリプトが終了します。

私のゲームサーバーにはカスタムPHP管理インターフェースがあり、起動シェルスクリプトを使用して実行してexecサーバーを手動で実行できますsudo -E。ただし、 restart httpd を使用すると、service httpd restartスクリプトと実際のゲームサーバーも終了します。 Web サーバーのみを終了するようにこの動作を変更したり、ゲームサーバーを実行したりするにはどうすればよいですか。

答え1

私はゲームサーバーを所有して制御し、外部の世界にWebサービスを提供するPerlデーモンを書いて、ゲームサーバーのこの問題を解決しました。シンプルだが効果的。

答え2

Webページ(PHPスクリプト)にアクセスすると、httpdサーバープロセスのインスタンス(サブプロセス)によってコンテンツが送信されます。 httpd サーバーを再起動すると、スクリプトはサーバーに終了を通知し、スクリプト自体を実行する PHP インスタンスを含むすべての子プロセスも終了します。デフォルトでは、このスクリプトは実際に自殺をしています。

試してみてください"apachectl -k 優雅さ"これにより、サーバーは正常に再起動します。つまり、サーバープロセスのみが再開されますが、現在のセッションは完了できます。スクリプトが消えてはいけません。

関連情報