linuxコマンドnohup php filename.php &
を使用して、バックグラウンドのPHPプロセスを作成しています。ここでの問題は、filename.php
に含まれるファイルやファイル自体に変更があった場合、現在のプロセスを強制終了して再開する必要があることです。これを防ぐ方法はありますか?私のアプリケーションでは、(プロセスを強制終了して再起動するために)ダウンタイムが必要ないので、コードの更新に再起動する必要はありません。これを回避する方法が他にない場合は、誰かが代替アプローチを提案しますか?適切なPHPバックグラウンドプロセスを作成するには?
EDIT 1
私は、メインプロセス間の通信のためZeroMQを使用していますが、このバックグラウンドプロセス。バックグラウンドプロセスは特定のTCPポート、たとえば555にバインドされます。新しいプロセスを開始しようとすると、同じポートにバインドしようとすると、ポートがすでに使用中であるため、エラーが発生します。そして、私は新しいプロセスを開始する前にプロセスを終了させる必要があります。
EDIT 2
サンプルコードと私の完全な問題の中に、DEPT説明については私の他のquestionを確認してください。
古いプロセスを強制終了する前に、修正されたコードで新しいプロセスを開始してください。その仕事は – RiggsFolly
@RiggsFolly私はメインプロセスとこのバックグラウンドプロセス間の通信にZeroMQを使用しています。バックグラウンドプロセスは特定のTCPポート、たとえば555にバインドされます。新しいプロセスを開始しようとすると、同じポートにバインドしようとすると、ポートがすでに使用中であるため、エラーが発生します。そして、私は新しいプロセスを開始する前にプロセスを終了させる必要があります。 –
PHPスクリプトは、実行開始時に一度読み込まれます。これを回避する方法はないようです。バックグラウンドプロセスが定数ループの場合、ループ内のコードを別のファイルに分けて、 'exec'や' shell_exec'を介してそのファイルを呼び出すことができます。これにより、スクリプトは各繰り返しでスクリプトを再ロードします。 – apokryfos