問題タブ [sigterm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
918 参照

linux - 別の Linux ターミナルでプロセスを終了する方法

背景情報:

  • ラズベリーパイを使ってリモートディスプレイをセットアップしようとしています。
  • 現在、画像を表示するためにfbi(フレームバッファ画像ビューア)を使用しています。
  • デバイスは、ssh または Web インターフェイスを介して制御されます。どちらかはわかりませんが、実際のデバイスからは確実に制御されません。

問題は、プロセスをリモートで「クリーン」に終了し、画面をクリアしてエラーを生成しない簡単な方法が見つからないように見えることです。q ボタンを押すと fbi プログラムは終了しますが、ssh ではうまくいかないようです。理想的には、それを殺す前に毎回pidを調べなければならないよりも、面倒ではない解決策を好むでしょう。別のプログラムを使用するという考えにはオープンですが、Xorg で実行することはできません。

私はもう試した:

  • pidをgrepして送信kill -sigtermしますが、終了しないか、画面がクリアされません
  • echo "q" > /proc/[pid]/fd/0 - 私が試したすべての反復で、アクセスが拒否されるか、何も起こりません

何か案は?

0 投票する
1 に答える
906 参照

python - Python: デフォルトの SIGTERM ハンドラーをオーバーライドする

SIGTERM経由でサーバーに信号を送信していますstart-stop-daemon。予想どおり、シグナルを受信するとサーバーがシャットダウンします。SIGTERMここで、サーバーを受信後 10 秒間停止してからシャットダウンしたいと考えています。これを達成するために私は書いた

これで、サーバーは信号を受信して​​から 10 秒間待機しなくなりました。シグナルが送信されるとすぐに、シャットダウンします (ロガーでチェックされます)。

また、端末で次のメッセージが 10 秒間停止します。

私のコードは、シグナルが処理されていることをpythonに伝えることができないと思うので、デフォルトのハンドラーも私のハンドラーとともに呼び出されています。何をする必要があるか考えていますか?

0 投票する
0 に答える
539 参照

c++ - Linux で SIGTERM を無視しようとすると失敗しましたが、プロセスはまだ終了していました

Linux でのシグナル処理の問題に 1 つ遭遇しました。私の目標は、プロセスに SIGTERM シグナルを無視させることです。ただし、プロセスがまだ終了している場合、この問題の確率は 1/60 になります。

私のアプリケーションの偽のコード:

このアプリケーションはシグナル SIGTERM を受信して​​も終了しないと思いますが、実際のテスト結果は設計と一致しませんでした。場合によっては、シグナル SIGTERM を受信した後でもプロセスが終了することがあります。また、問題が発生したときにプロセスが SIGTERM シグナルを受信したことを確認しました。コンソール出力とトレース ファイルを確認できます。

SIGTERM を無視してもこのアプリケーションが終了するのはなぜですか? この問題の原因を特定する方法がわかりません。または、Linux での妥当な症状です。

あなたの助けを得ることを願っています。ありがとう!

0 投票する
1 に答える
368 参照

linux - SIGTERM を受け取った後、プロセスはどのくらい早く終了する必要がありますか?

SIGTERM シグナルを受信した後、Linux プロセスが終了するまでにかかる最大時間に関するガイドラインはありますか?

編集: I/O 呼び出しをブロックするためのタイムアウトを決定する必要があるため、質問しています。

0 投票する
0 に答える
1433 参照

hadoop - Hadoop データノードが SIGTERM 15 でシャットダウンし続ける

24 台のサーバーで Hadoop クラスターを実行しています。数か月間実行されていますが、最後の再起動後、データノードはエラーで停止し続けます:

クラスターを再起動するたびに、すべてのノードがオンになり、正常に起動します。しかし、マップ縮小ジョブを数秒実行すると、一部のノードがそのエラーで停止します。デッドノードが異なるたびに。

何が起こっているのか分かりますか?私は Hadoop 2.4.1 を使用しています。前述のとおり、クラスターは何ヶ月も前から問題なく稼働しています。

ありがとう。

0 投票する
1 に答える
1726 参照

python - systemd - 子が親出口で SIGTERM を受信して​​います

環境:

私は 3 つの子にフォークする python サーバーを持っています。

親の場合:

  • SIGTERM はすべての子を殺すことになっており、SIGHUP はログに記録して存在することになっています

子供の場合:

  • SIGTERM と SIGHUP の両方が SIG_DFL にマップされます

問題:

コマンドラインからスクリプトを開始し、python <script.py>SIGHUP を親に送信すると、kill -1 <pid-of-parent>正常に動作します。親は終了し、使用中の子は I/O が完了した後にのみ終了します。

しかし、同じスクリプトが systemd スクリプトで開始された場合、SIGHUP を親に送信すると、まだビジー状態の子は SIGTERM を受信し、I/O が中断されます。

これに対する説明/解決策はありますか? 設定ミスですか?

0 投票する
3 に答える
498 参照

c - Zookeeper C クライアントを使用するプロセスが SIGTERM で切断される

アプリケーションで Apache Zookeeper Client C バインディングを使用しています。クライアント ライブラリのバージョンは 3.5.1 です。Zookeeper 接続が切断されると、アプリケーションはエラー コード 116 で終了するように構成されています。

Systemd は、アプリケーションの開始/停止を自動化するために使用されています。ユニット ファイルは、SIGTERM をアプリケーションKillModeに送信するという のデフォルト設定を上書きしません。

systemctl stop ディレクティブを使用してプロセスを停止すると、Zookeeper クライアント スレッドが Zookeeper に再接続しようとしているように見えます。

このため、プロセスはエラー コードで終了しています。Systemd は終了時にエラー コードを確認し、アプリケーションの再起動を試みません。クライアントが切断される理由を知っている人はいますか?

ユニットファイルに設定することでこれを回避できることは承知していSuccessExitStatus=116ますが、本物のエラーを隠したくありません。SIGTERM のシグナルハンドラーを登録し、ハンドラーで Zookeeper クライアントを閉じようとしました。しかし、systemctl stop を発行しても、ハンドラ コードがヒットすることはないようです。

編集:ハンドラーを非同期にしたため、ハンドラーが呼び出されませんでした-シグナルを受信して​​もすぐに実行されませんでした。OTOH プロセスは、Zookeeper が切断されるとすぐに終了します。