GNU/Linux >> Linux の 問題 >  >> Linux

プロセスを kill -9 してはいけないのはいつですか?

通常、kill を使用する必要があります。 (kill -s TERM の略) 、またはほとんどのシステムで kill -15 ) kill -9 の前 (kill -s KILL ) ターゲット プロセスにクリーンアップの機会を与えます。 (プロセスは SIGKILL をキャッチまたは無視できません 、しかし、彼らは SIGTERM を捕まえることができますし、しばしばそうします .) プロセスが行っていることを終了してクリーンアップする機会をプロセスに与えないと、破損したファイル (またはその他の状態) が残り、再起動すると理解できなくなる可能性があります。

strace /trussltrace および gdb スタックしたプロセスがスタックしている理由を調べるには、一般的に良いアイデアです。 (truss -u Solaris では特に役に立ちます。 ltrace を見つけました 使用できない形式でライブラリ呼び出しに引数を提示することが多すぎます。) Solaris には便利な /proc もあります。 ベースのツールであり、その一部は Linux に移植されています。 (pstack が役立つことがよくあります)。


Randal Schwartz は、リストに「(x) の無用な使用」を頻繁に投稿していました。そのような投稿の 1 つは、約 kill -9 でした .従うべき理由とレシピが含まれています。これが再構築されたバージョンです (以下に引用)。

<ブロック引用>

(憎悪の引用)

ダメダメダメ。 kill -9 を使用しないでください。

プロセスにクリーンな機会を与えません:

1) ソケット接続をシャットダウンします

2) 一時ファイルをクリーンアップする

3) それがなくなることを子供たちに知らせる

4) ターミナル特性をリセットする

などなど。

通常、15 を送信して 1 ~ 2 秒待ち、それが機能しない場合は 2 を送信し、それが機能しない場合は 1 を送信します。それが機能しない場合は、バイナリを削除してください。

kill -9 を使用しないでください。植木鉢を片付けるためだけにコンバインを持ち出さないでください。

Usenet のもう 1 つの無駄な使用、

(.署名)


kill -9 を実行することは常に問題ありません。 、電源ケーブルを引っ張ってシャットダウンしても問題ないのと同じように。それは反社会的かもしれませんし、いくらか回復する必要がありますが、うまくいくはずであり、せっかちな人のための強力なツールです.

これは、単純な kill (15) を最初に試す人として言います。これは、プログラムに何らかのクリーンアップを行う機会を与えるためです。おそらく、「sig 15 で終了する」ログに書き込むだけです。しかし、キル -9 に対する不適切な振る舞いについての苦情は受け付けません。

その理由は、多くの顧客が、プログラマーが好むよりも好まないことをしているからです。 Random kill -9 テストは適切で公正なテスト シナリオであり、システムがそれを処理しない場合、システムは壊れています。


Linux
  1. 「kill-9」が機能しない場合はどうなりますか?

  2. Linux – -9プロセスを強制終了すべきではないのはいつですか?

  3. Sigintが親プロセスに送信されたときに子プロセスに伝播されないのはなぜですか?

  1. Suの実行時に.bash_profileがソースされませんか?

  2. プロセスの子孫?

  3. kill を使用してプロセスを停止するときに、特定の終了コードを強制することは可能ですか?

  1. Linuxでゾンビプロセスを強制終了する方法

  2. Linux:コマンド ラインでプログラムを閉じます (強制終了ではありません)。

  3. Raspbian でのプロセスの強制終了