長時間実行できる PHP で記述されたソフトウェアがあります。コマンドライン (Web アプリケーションではありません) から起動します。ctrl+c で強制終了した場合を含め、ソフトウェアが終了したときに必ず関数を呼び出すようにしたかったのです。シグナルによって強制終了されると、シャットダウン関数 ( register_shutdown_fucntion() で登録されたデストラクタと関数) は呼び出されません。
少し読んだ後、「exit;」を呼び出すためだけに、関連するすべてのシグナルにハンドラーを追加する必要があることに気付きました。そうすることで問題が解決し、機能します。
私の問題は、場合によっては、シグナルがすぐに処理されないことです。数秒、数分かかる場合があり、場合によってはまったく処理されません。ハンドラー コードに到達しなかった場合と同様です。どこからデバッグを開始すればよいかわかりません。私は他のシグナル(sigkill、sighupなど)を試しましたが、同じ動作です。
私のコードはこれらの括弧内にあります
declare(ticks=1)
{...}
すぐに治療を受ける時間とそうでない時間の間に相関関係は見つかりません.
どんな助けでも大歓迎です。