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

Ctrl + C でプロセスを強制終了できない場合はどうすればよいですか?

Ctrl の理由の問題を理解するには + C は機能しません。これを押すと何が起こるかを理解しておくと非常に役立ちます:

ほとんどのシェルは Ctrl をバインドします + C 「現在フォアグラウンドで実行されているプログラムに SIGINT シグナルを送信する」。 man シグナルを介してさまざまなシグナルについて読むことができます:

 SIGINT        2       Term    Interrupt from keyboard

SIGTSTP も無視できるため、プログラムはそのシグナルを無視できます。

 SIGTSTP   18,20,24    Stop    Stop typed at tty

(これは、Ctrl を押したときにほとんどのシェルが行うことです) + Z 、これが動作が保証されていない理由です。)

プロセスが無視できないシグナルがいくつかあります:SIGKILL、SIGSTOP などです。これらのシグナルは、kill コマンドを介して送信できます。したがって、ハングアップ/ゾンビ化プロセスを強制終了するには、プロセス ID (PID) を見つけるだけです。たとえば、pgrep を使用します または ps そして kill それ:

 % kill -9 PID

Ctrl の場合 +C (SIGINT) が機能しません。Ctrl を試してください +\ (SIGQUIT)。次に Ctrl を試してください +Z (SIGTSTP)。シェル プロンプトに戻る場合は、kill を実行します。 プロセス ID で。 (これはデフォルトで SIGTERM シグナルになり、kill -TERM で指定できます .一部のシェルでは、 %1 を使用できる場合があります PID を参照してください。) それが機能しない場合は、別の端末または SSH セッションに移動して kill を実行します。 または kill -TERM プロセス ID で。 最後の手段としてのみ kill -KILL をするべきですか 、別名 kill -9 、プロセスを正常に中止したり、開いているファイルを同期したり、一時ファイルを削除したり、ネットワーク接続を閉じたりする機会が与えられないためです。


こちらのリンクもご覧ください。

Ctrl +Z :プロセスを一時停止します。

Ctrl +C :プロセスを今すぐシャットダウンするよう丁寧に依頼してください。

Ctrl +\ :現在フォアグラウンドにあるプロセスを容赦なく強制終了します


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

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

  3. スレッドが分岐するとどうなりますか?

  1. unix\Linux アプリケーションでの CTRL + Z の​​効果は何ですか

  2. Linux でこのプロセスを強制終了できないのはなぜですか?

  3. kill 、 pkill 、 killall の違いは何ですか?

  1. ゾンビプロセスとは何ですか?ゾンビプロセスを見つけて殺す方法は?

  2. Linux で SIGKILL を Zombie Process に送信するとどうなりますか?

  3. kill -- -0 は何をしますか?