ホームページ >バックエンド開発 >PHPチュートリアル >node.js - php スクリプトをデーモンとして実行し続けるにはどうすればよいですか?

node.js - php スクリプトをデーモンとして実行し続けるにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-08-23 09:17:511603ブラウズ

swoole を使用してサーバーを作成しました。これをデーモンとしてサーバー上にハングし、継続的に実行する予定です。これにより、エラーにより予期せず終了した後、できるだけ早くスクリプトを再起動することができます。

返信内容:

swoole を使用してサーバーを作成しました。これをデーモンとしてサーバー上にハングし、継続的に実行する予定です。これにより、エラーにより予期せず終了した後、できるだけ早くスクリプトを再起動することができます。

Linux nohup コマンドは、この PHP スクリプトを実行し、このスクリプトの実行ステータスを監視するシェルを書き込みます。スクリプトが停止した場合は、スクリプトを再起動します。

while(1) などのループとしてスクリプトを記述するだけで、永久に実行できます。

このスクリプトヘッダー、この判定は、既にこのスクリプトの処理があればそのまま終了し、処理がなければ実行します

さらに、この PHP スクリプトを毎分実行するなど、Linux のスケジュールされたタスクを作成します。

スクリプトを一度実行すると、スケジュールされたタスクは実行され続けます。スクリプトが生きている場合は、直接終了し、実行が開始されます。

PHPスクリプトを書きます。メモリ使用量を定期的に確認し、コア ロジックを作成しないことをお勧めします。これはビジネスに関連しています。

リーリー

phpファイルのパスは

/root/run.phpターミナルを開きます
リーリー

プロセスが存在しない場合にプロセスを自動的に再起動するようにプロセス監視スクリプトを編集します

/root/monitor.sh リーリー

スケジュールされたタスクを追加します(毎分検出)

リーリー

手作り

シンプルで信頼性の高いシェル スクリプトを使用して、突然終了する可能性のある PHP サービスを保護します

ブートコマンドを/etc/rc.local:

に追加します。 リーリー

swoole.sh の内容は次のとおりです:

リーリー

その中には:

リーリー

つまり、swoole.sh は、ディレクトリ /proc/PID が存在するかどうかを 1 秒ごとにチェックし、存在しない場合は、サービスが再起動され、

swoole.log が記録されます。これはサービス自体の出力です。

たとえば、シェルを使用して vmstat を保護します:

リーリー

この vmstat.sh スクリプトは PHP で実装することもできます:

リーリー

1.crontab が存在する必要があります。存在するかどうかを 1 分ごとに確認し (ps -ef | grep..)、存在する場合は作成して実行します

2. 実行中のプロセスは無限にループする可能性があります。 .

3.crontab スクリプトは、常に実行されているプロセスのステータスを検出できます。問題がある場合、待機中、応答なし、またはその他の問題がある場合は、自分でプロセスを強制終了して再起動する必要があります。

Linux シェルの実行

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。