問題タブ [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.
linux - 別の Linux ターミナルでプロセスを終了する方法
背景情報:
- ラズベリーパイを使ってリモートディスプレイをセットアップしようとしています。
- 現在、画像を表示するためにfbi(フレームバッファ画像ビューア)を使用しています。
- デバイスは、ssh または Web インターフェイスを介して制御されます。どちらかはわかりませんが、実際のデバイスからは確実に制御されません。
問題は、プロセスをリモートで「クリーン」に終了し、画面をクリアしてエラーを生成しない簡単な方法が見つからないように見えることです。q ボタンを押すと fbi プログラムは終了しますが、ssh ではうまくいかないようです。理想的には、それを殺す前に毎回pidを調べなければならないよりも、面倒ではない解決策を好むでしょう。別のプログラムを使用するという考えにはオープンですが、Xorg で実行することはできません。
私はもう試した:
- pidをgrepして送信
kill -sigterm
しますが、終了しないか、画面がクリアされません echo "q" > /proc/[pid]/fd/0
- 私が試したすべての反復で、アクセスが拒否されるか、何も起こりません
何か案は?
python - Python: デフォルトの SIGTERM ハンドラーをオーバーライドする
SIGTERM
経由でサーバーに信号を送信していますstart-stop-daemon
。予想どおり、シグナルを受信するとサーバーがシャットダウンします。SIGTERM
ここで、サーバーを受信後 10 秒間停止してからシャットダウンしたいと考えています。これを達成するために私は書いた
これで、サーバーは信号を受信してから 10 秒間待機しなくなりました。シグナルが送信されるとすぐに、シャットダウンします (ロガーでチェックされます)。
また、端末で次のメッセージが 10 秒間停止します。
私のコードは、シグナルが処理されていることをpythonに伝えることができないと思うので、デフォルトのハンドラーも私のハンドラーとともに呼び出されています。何をする必要があるか考えていますか?
c++ - Linux で SIGTERM を無視しようとすると失敗しましたが、プロセスはまだ終了していました
Linux でのシグナル処理の問題に 1 つ遭遇しました。私の目標は、プロセスに SIGTERM シグナルを無視させることです。ただし、プロセスがまだ終了している場合、この問題の確率は 1/60 になります。
私のアプリケーションの偽のコード:
このアプリケーションはシグナル SIGTERM を受信しても終了しないと思いますが、実際のテスト結果は設計と一致しませんでした。場合によっては、シグナル SIGTERM を受信した後でもプロセスが終了することがあります。また、問題が発生したときにプロセスが SIGTERM シグナルを受信したことを確認しました。コンソール出力とトレース ファイルを確認できます。
SIGTERM を無視してもこのアプリケーションが終了するのはなぜですか? この問題の原因を特定する方法がわかりません。または、Linux での妥当な症状です。
あなたの助けを得ることを願っています。ありがとう!
linux - SIGTERM を受け取った後、プロセスはどのくらい早く終了する必要がありますか?
SIGTERM シグナルを受信した後、Linux プロセスが終了するまでにかかる最大時間に関するガイドラインはありますか?
編集: I/O 呼び出しをブロックするためのタイムアウトを決定する必要があるため、質問しています。
hadoop - Hadoop データノードが SIGTERM 15 でシャットダウンし続ける
24 台のサーバーで Hadoop クラスターを実行しています。数か月間実行されていますが、最後の再起動後、データノードはエラーで停止し続けます:
クラスターを再起動するたびに、すべてのノードがオンになり、正常に起動します。しかし、マップ縮小ジョブを数秒実行すると、一部のノードがそのエラーで停止します。デッドノードが異なるたびに。
何が起こっているのか分かりますか?私は Hadoop 2.4.1 を使用しています。前述のとおり、クラスターは何ヶ月も前から問題なく稼働しています。
ありがとう。
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 が中断されます。
これに対する説明/解決策はありますか? 設定ミスですか?
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 が切断されるとすぐに終了します。