問題タブ [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 投票する
1 に答える
1670 参照

ruby - RSpec でのシグナル処理、特に SIGTERM の処理を​​テストするには?

Heroku は、さまざまな理由でアプリケーションに SIGTERM を送信することがあります。そのため、これが発生した場合に備えて、いくつかのクリーンアップを処理するハンドラーを作成しました。一部のグーグルでは、RSpec でこれをテストする方法に関する回答や例が得られませんでした。基本的なコードは次のとおりです。

プログラムが SIGTERM を受け取ったときにこのクリーンアップ メソッドが呼び出されることをテストする最良の方法は何ですか?

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

linux - SIGTERM からのメッセージのロギング

アプリケーション (私の場合は C++ デーモン) が SIGTERM または SIGINT を受け取ったときに、シャットダウン メッセージをログに記録する適切な方法は何ですか?

CERTsignal(7) manpageによると、多くの関数 (おそらく、ほとんどのロギング ライブラリで使用されている関数を含む) は、シグナル ハンドラから呼び出すのは安全ではありません。

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

c++ - Linuxのkill()エラーが予期しない

Kill(pid、0)はエラーコードを正しく設定していないようです...人がkillについて述べているように

エラー

次の場合、kill()関数は失敗します。

EINVAL sig引数の値は、無効またはサポートされていないシグナル番号です。
EPERMプロセスには、受信プロセスに信号を送信する権限がありません。
ESRCHpidで指定されたものに対応するプロセスまたはプロセスグループが見つかりません。次のセクションは参考情報です。 1

ENOENT(そのようなファイルやディレクトリはありません)を返し、EINTR(システムコールが中断されました)を返すことがあります...

これが私がしていることです:

私は何か間違ったことをしていますか?

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

sigkill - phshutdown を使用してシャットダウン中に QNX システムがハングする

phshutdown (再起動またはシャットダウン) を使用して QNX ニュートリノをシャットダウンしているときに、メッセージ キュー (mqueue) を強制終了している間にシステムがハングします。画面に表示されるメッセージは次のとおりです。

サービスプロバイダーのシャットダウン (mqueue)

この理由は何ですか?

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

java - Ubuntu 12.04 で Java アプリケーションが SIGNAL を受信しない

奇妙な問題

シグナルの受信時にJavaアプリを適切にシャットダウンしようとしています。または、kill経由で手動で送信します。SIGTERM、SIGHUP、SIGINT などを強制終了しようとしましたが、JVM がランタイム シャットダウン フックを呼び出さずに停止するたびに、最終的に Java コードで作成されたトラップをブロックまたはシグナルします。

shutdownHook が機能しなかった場合のハンドラを追加

Java Javaバージョン「1.6.0_24」を使用してUbuntu 12.04で実行しています

OpenJDK ランタイム環境 (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1)

OpenJDK 64 ビット サーバー VM (ビルド 20.0-b12、混合モード)

Oracle Java jdk1.6.0_37でも試してみましたが、同じ効果

プロセスで strace を使用して何が起こるかを確認すると、次のようになります。

user@server:~/appdir$ sudo strace -v -p 32277Process 32277 が接続されました - quitfutex(0x7f667f07d9d0, FUTEX_WAIT, 32278, NULL) = ? への割り込み ERESTARTSYS (再起動予定) --- SIGTERM (終了) @ 0 (0) --- futex(0x7f667e2543e0, FUTEX_WAKE_PRIVATE, 1) = 1 rt_sigreturn(0x7f667e2543e0) = 202 futex(0x7f667f07d9d0, FUTEX_WAIT, pid 32278: 7NULL PANIC2 付属 7NULL 143で終了

そして、このヌルパニックは怪しいように見えますが、次はどうなるかわかりません。

そのコードを Mac でテストしたところ、問題なく動作しました。問題の原因とそれを修正する方法はありますか? 設定が必要なセキュリティ機能/ポリシーはありますか?

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

linux - Linuxプロセスを安全に強制終了する方法は?

FAT32パーティションにファイル(〜1 / s)を継続的に書き込む組み込みLinuxシステムは、中断されたときにパーティションを破損することがあります。プロセスは2つの方法で中断できます。電源を入れ直すか、musb_hdrc/gadgetを使用してUSB経由でホストとの間でファイルをコピーします。musb_hdrc / gadgetは、パーティションへのアクセスを内部組み込み制御からUSBに切り替えて、外部ホストとの間でファイルを転送するために使用されます。解決策は実行することかもしれませんが、killall process-nameこれはLinuxプロセスを安全に強制終了しますか?IOW:プロセスはすでに開始されているファイルIOを完了しますか、それとも破損したパーティションがまだありますか?killallのマニュアルページ によるとIf no signal name is specified SIGTERM is sent.、killがクリーンであることを確認するためにコードに何かを追加する必要がありますか、および/またはcleankillを実行するための特別なkillallシグナル名がありますか?

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

tomcat - Heroku Java Tomcat ServletContextListener が、slugc または再起動時に contextDestroyed を呼び出さない

Heroku は SIGTERM を使用して、プロセスが正常にシャットダウンできるようにします。ただし、Tomcat プロセスは SIGTERM に応答せず、ServletContextListener で contextDestroyed を呼び出すことはありません。

Heroku の再起動を使用して、または Heroku がアプリのスラッグ コンパイルを実行するときに、Tomcat に contextDestroyed を呼び出させるにはどうすればよいですか。

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

bash - Bash:IPアドレスにバインドされたプロセスのフェイルセーフキル

開始後、アドレスとポートにバインドするプロセスがあります。これらのプロセスはexec、子プロセスが閉じると画面が閉じるように、を使用して画面内で実行されます。

プロセスを強制終了するときはを使用kill -9 PIDしますが、画面が終了することがありますが、プロセスを再開すると、古いプロセスはまだポートを使用しているため、プロセスを再度終了する必要があります。

また、ソケットが開いたままになり、メモリが古くなり、ランダムなリソースが使用されていることも読んだSIGKILLので、単純なkill PID、つまりに目を向けましたSIGTERM

SIGTERMプロセスがアドレスとポートからバインド解除できることが保証されていますか、それともより良い代替手段がありますか?

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

unix - UNIXで強制終了されたプロセスのリターンコードを取得するにはどうすればよいですか?

SIGTERM シグナルをプロセス ID に送信して、実行中のプロセスを強制終了する bash スクリプトがあります。ただし、シグナルを送信したばかりのプロセスのリターンコードを知りたいです。

それは可能ですか?

強制終了するプロセスがスクリプトから開始されておらず、「pid ##### はこのシェルの子ではありません」というメッセージが表示されるため、「待機」を使用できません。

プロセスが実行されているコンソールでコマンドラインでいくつかのテストを行い、SIGTERMシグナルを(別のコンソールから)送信した後、終了コードを確認しましたが、143でした。別のスクリプトからプロセスを強制終了したいその数をキャッチします。

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

debugging - QT Creator でデバッガーを実行中に「停止」によって送信されたシグナルの処理

(Linux マシンの) QT Creator で通常どおりプログラムを実行しているときに、「停止」ボタンを押すと、SIGTERM シグナルを処理して、ソフトウェアを適切にシャットダウンできます。ただし、デバッグ モードで実行して同じボタンを押すと、シグナルが実行されたように見えず、プログラムが停止するだけです。デバッグモードで実行中の停止ボタンは、他の信号を送信しますか?もしそうなら、どのような信号を送信しますか? QT Creator内からこれを処理することさえ可能ですか? SIGKILL など、処理できない信号を送信しますか? ソフトウェアのプロセスに SIGTERM シグナルを発行すると、デバッグ モードで実行されたソフトウェアを正常に終了できますが、別のターミナル ウィンドウを使用するのではなく、QT Creator 内でこれを実行できる方法があることを望んでいました。

ありがとうございました!