3

CentOS で Apache サーバーを実行していますが、次を使用して保護されたページから Web サーバーを再起動できるようにしたいと考えています。

PHP:

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

再起動.sh:

service httpd restart

私の質問は、Web サーバーがシャットダウンして PHP の実行が停止した場合、sh スクリプトは引き続き実行され、Web サーバーをオンラインに戻すことができますか?

4

3 に答える 3

0

コマンドの最後に & を追加できる場合があります。これにより、プロセスがフォークされ、バックグラウンドで実行されます。このようにして、実行中のApacheに依存しません。

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

これが機能する場合、ignore_user_abort() は必要ありません。

于 2012-11-05T03:02:36.913 に答える
0

PHP が apache モジュールとして実行されている場合、httpd を強制終了すると、スクリプトは即座に終了します。したがって、再起動をコマンド ライン スクリプト (exec()またはを使用して呼び出すshell_exec())に委譲する必要があります。

于 2012-11-04T19:18:27.157 に答える
0

コマンドが発行されるまでApacheはシャットダウンしないので、問題ありません。しかし、本当に安全を確保したい場合は、nohupを使用してください:

shell_exec('nohup sh sh/restart.sh');
于 2012-11-04T19:13:25.893 に答える