2016-10-19 15 views
0

私は10 +分のように実行する巨大なプロセスを実行する必要があります。私はmax_execution_timeを超えましたが、私のエラーログにはSIGTERMとSIGKILLがあります。SIGTERMとSIGKILLを停止するには?

デーモンから来たSIGTERMとSIGKILLについて少し読んだけど、どうやってそれをやめるのか分からなかった。私はただ一晩それを無効にする必要があります。

+2

sigkillを停止することはできません。期間。これは、sigkillの重要なポイントです。そうでなければそうでないプロセスをシャットダウンする能力です。 –

+0

私はsth noを見つけました。これは何もありません:https://www.reddit.com/r/linux/comments/8fbtw/does_anyone_know_a_way_to_prevent_sigkill/は可能ですか? –

+0

あなたはとても嫌なので、カスタムのハッキングカーネルを作りたいですか?そのことを幸運に思います... –

答えて

0

シグナルを無視しようとするのではなく、誰がシグナルを送信するのか、その理由を見つける必要があります。コマンドラインからphpを起動している場合は、誰もその信号を送信せず、スクリプト時間は常にになります。

しかし、HTTPリクエストに対する応答としてこのプロセスを実際に開始しているのは、たぶんスクリプトの終了を待つ時間を制限するのはFastCGIマネージャのWebサーバーだからです。クライアントの接続(ユーザーのブラウザーとhttpサーバー間)が終了したため、単にスクリプトを強制終了することもできます。

重要なことは、シグナルの原因とそのタイムアウトをどのように増やすかということです。また、このスクリプトの起動方法や実行しているプラ​​ットフォームについての詳細も記入してください。

+0

ねえ、あなたは正しいです。 apache2のログでerror_logを調査したところ、sigtermは何かのものであることが判明しました。私はそれが何を正確に殺したのか分からないが、実際には、PHPスクリプトは永遠に実行されています。 –

+0

ええ、私は本当に "ignore_user_abort" php関数で解決したと思います。実際にはクライアントのタイムアウトになる可能性があります。 –

関連する問題