私のゲームサーバーにはカスタムPHP管理インターフェースがあり、起動シェルスクリプトを使用して実行してexec
サーバーを手動で実行できますsudo -E
。ただし、 restart httpd を使用すると、service httpd restart
スクリプトと実際のゲームサーバーも終了します。 Web サーバーのみを終了するようにこの動作を変更したり、ゲームサーバーを実行したりするにはどうすればよいですか。
答え1
私はゲームサーバーを所有して制御し、外部の世界にWebサービスを提供するPerlデーモンを書いて、ゲームサーバーのこの問題を解決しました。シンプルだが効果的。
答え2
Webページ(PHPスクリプト)にアクセスすると、httpdサーバープロセスのインスタンス(サブプロセス)によってコンテンツが送信されます。 httpd サーバーを再起動すると、スクリプトはサーバーに終了を通知し、スクリプト自体を実行する PHP インスタンスを含むすべての子プロセスも終了します。デフォルトでは、このスクリプトは実際に自殺をしています。
試してみてください"apachectl -k 優雅さ"これにより、サーバーは正常に再起動します。つまり、サーバープロセスのみが再開されますが、現在のセッションは完了できます。スクリプトが消えてはいけません。