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

bash - プロセスを正常にシャットダウンするには、どのような順序でシグナルを送信すればよいですか?

別の質問のこの回答に対するコメントで、コメント投稿者は次のように述べています。

どうしても必要な場合を除き、kill -9 を使用しないでください。SIGKILL はトラップできないため、強制終了されたプログラムは一時ファイルを消去するなどのシャットダウン ルーチンを実行できません。最初に HUP (1)、次に INT (2)、次に QUIT (3) を試してください。

については原則として同意しますSIGKILLが、残りはニュースです。によって送信されるデフォルトのシグナルが であることを考えるとkillSIGTERM任意のプロセスを正常にシャットダウンするために最も一般的に期待されるシグナルであると思います。SIGHUPまた、デーモンに「構成ファイルを再読み込みする」ように指示するなど、終了しない理由で使用されているのを見てきました。そして、SIGINT(通常は Ctrl-C で得られるのと同じ割り込みですよね?) 本来あるべきほど広くサポートされていないか、かなり不自然に終了しているように思えます。

SIGKILLそれが最後の手段であることを考えると、任意のプロセスを可能な限り正常にシャットダウンするには、どのシグナルをどのような順序で送信する必要がありますか?

可能であれば、裏付けとなる事実 (個人的な好みや意見を超えて) または参照を使用して回答を裏付けてください。

注: bash/Cygwin を考慮したベスト プラクティスに特に関心があります。

編集:これまでのところ、INT や QUIT については誰も言及していないようで、HUP についての言及は限られています。これらを整然としたプロセスキルに含める理由はありますか?

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

c - SIGTERM で動的に割り当てられた変数を解放するには?

私はこのようなコードに取り組んでいます

プロセスがフォークされると、すべての変数も複製されます。通常、var のすべてのコピーが解放されます。

によってエラーが発生した場合はfork()、作成されたすべてのプロセスにシグナル SIGTERM を送信します。そして、var を解放してアプリケーションを終了する SIGTERM のシグナル ハンドラを作成する必要があります。ただし、free() はそうではないsignal safe functionので、呼び出すべきではありません。しかし、その変数を free() する方法は?

あなたの答えに感謝します...

編集: valgrind は、まだ到達可能な変数も示しています:

0 投票する
4 に答える
20412 参照

bash - プロセスを生成し、SIGTERM で子を終了するシェル スクリプト

バックグラウンドでいくつかの実行時間の長いプロセスを生成し、その後ハングアップするシェル スクリプトを作成したいと考えています。SIGTERM を受信したら、すべてのサブプロセスも終了させたいと思います。

基本的には「マスタープロセス」が欲しい。

これが私がこれまでに得たものです:

上記のスクリプトは で失敗しtrap: 10: SIGTERM: bad trapます。

編集:Ubuntu 9.04を使用しています

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

windows - SIGTERMの送信/キャッチのWin32APIアナログ

POSIX OSには、killでシャットダウンするために処理するシグナルを送信できるシグナルAPIがあり、sigactionでキャッチして、必要なことを実行できます。

ただし、Win32はPOSIXシステムではないため、次のようになります。

  • たとえば、「タスクマネージャ」の「プロセスの終了」から発生する可能性のあるシャットダウンイベントを処理するにはどうすればよいですか?
  • Win32アプリケーションにシャットダウン信号を送信するための標準APIは何ですか?

私はGUIについて話しているのではなく、うまくシャットダウンされるべきTCP/IPサーバーについて話しているのです。これはWindowsサービスのようには実行されません。

0 投票する
7 に答える
222462 参照

linux - Apacheサーバーがクラッシュし続け、「SIGTERMをキャッチし、シャットダウンしました」

これはちょうど3週間ほど前に起こり始めました。私のウェブサイトのコンテンツは変更されていません。MySQLをバックエンドとして使用しているphpBBフォーラムです。

1年以上何も変わっていませんが、最近は2日ごとにサーバーがシャットダウンし、まったくアクセスできなくなりました。サービスプロバイダーに、マシンを物理的に再起動するように通知する必要があります。

ログで見つけたこれらのSIGTERMエラーに関連しているようです。問題は、この分野での私のスキルが不足しているため、これらの種類のものを修正する方法や根本的な原因を見つける方法がわからないことです。

誰かが何が起こっているのか考えがありますか?

Apache / 2.2.3(CentOS)

20051115

Linux 2.6.18-028stab057.4#1SMP金8月1日10:47:59MSD 2008 x86_64

エラーログから:[Sun Nov 01 15:18:53 2009] [notice] SIGTERMをキャッチし、シャットダウンしました

それが私の問題の原因であるかどうかは完全にはわかりませんが、それは良いことのようには思えません。

必要に応じて、より多くのログ情報を投稿できます

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

c# - Windowsにposix SIGTERMの代替手段はありますか? - (コンソール アプリケーションの穏やかなキル)

GUI アプリケーションによって実行されるコンソール デーモンがあります。GUI アプリケーションが終了したら、デーモンも停止したいと思います。

Windowsで穏やかに行うにはどうすればよいですか?

Linux では、SIGTERM を使用するだけですが、ウィンドウにコンソール アプリケーション用の同様のメカニズムはありますか?

もう少し詳しく説明すると、デーモン アプリは Python で作成され、GUI は C# および Windows フォームで作成されています。

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

python - サーバーの再起動後にデーモンのためにぶら下がっている PID ファイル

プログラムの並列実行を防ぐために PID ファイルを使用するデーモンがいくつかあります。SIGTERM をトラップし、PID ファイルを含む必要なクリーンアップを行うシグナル ハンドラをセットアップしました。「kill -s SIGTERM #PID」を使用してテストすると、これはうまく機能します。ただし、サーバーを再起動すると、PID ファイルがまだぶら下がっていて、デーモンの起動を妨げています。サーバーのシャットダウン時に SIGTERM がすべてのプロセスに送信されることを理解しています。デーモンで別のシグナル (SIGINT、SIGQUIT?) をトラップする必要がありますか?

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

python - Linux での Python / GTK でのユーザーのログアウト / シャットダウンの検出 - SIGTERM/HUP が受信されない

OK、これはおそらく難しい問題です。キャッチ/制御できない X Window エラーが原因でランダムにクラッシュする pyGTK アプリケーションがあります。

そのため、クラッシュを検出するとすぐにアプリを再起動するラッパーを作成しました。ユーザーがシステムをログアウトまたはシャットダウンすると、アプリはステータス 1 で終了します。しかし、一部の X エラーではそうなります。

だから私はシャットダウン/ログアウトをキャッチするために文字通り何かを試みましたが、成功しませんでした.これが私が試したことです:

これらのいずれも成功しません。システムのシャットダウンを検出する低レベルの方法はありますか? Google はそれに関連するものを見つけられませんでした。

方法があるに違いないと思いますよね?:/

編集: OK、もっとたくさん。

このシェルスクリプトを作成しました:

また、それを実行するための .desktop ファイルも作成しました。

通常、これにより、ログアウト時にtermファイルが作成され、&で開始されたときにhupファイルが作成されます。しかし、私のシステムではありません。GDM はスクリプトをまったく気にしません。再ログインしても、まだ実行中です。

も使用してみましたがshopt -s huponexit、成功しませんでした。

EDIT2:
また、実際のコードに関する詳細情報を次に示します。全体は次のようになります。

流れは次のようになります。

ここで、シャットダウン時に 1 をstart program返します。これは、ハナップが発生したか、親プロセスが終了したかのいずれかを意味します。主な問題は、これら 2 つのうちどちらが発生したかを把握することです。X エラーも 1 になります。シェルスクリプトでのトラップは機能しません。

実際のコードを見たい場合は、GitHub でチェックしてください:
http://github.com/BonsaiDen/Atarashii

0 投票する
9 に答える
22223 参照

c - Linuxで保留中のシステムシャットダウンを検出する方法は?

システムのシャットダウンを検出する必要があるアプリケーションに取り組んでいます。ただし、このイベントに関する信頼できる通知を受け取る方法は見つかりませんでした。

シャットダウン時に、アプリがSIGTERMシグナルを受信し、その後にSIGKILL. シャットダウン シーケンスの一部であるSIGTERMかどうかを照会する方法があるかどうか知りたいですか?

それをプログラムで照会する方法があるかどうかは誰にもわかりません(C API)?

私の知る限り、システムは差し迫ったシャットダウンを照会する他の方法を提供していません。もしそうなら、それは私の問題も解決するでしょう。私も試してみましたrunlevelsが、変更はrunlevels瞬時に行われるようで、事前の警告はありません。

0 投票する
4 に答える
18635 参照

java - SIGKILL Process.destroy()を使用してJavaでLinuxプロセスを強制終了するにはどうすればよいですか?

Linuxでは、java.lang.Processオブジェクト(実際に型指定されたjava.lang.UNIXProcess)でdestroy関数を実行すると、プロセスにSIGTERMシグナルが送信されますが、SIGKILLでそれを強制終了する方法はありますか?