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

Linuxでプロセスを強制終了する方法またはプログラムを停止する方法

プロセスが誤動作した場合、プロセスを終了または強制終了したい場合があります。この投稿では、サンプルアプリケーションとしてgeditを使用して、コマンドラインおよびグラフィカルインターフェイスからプロセスまたはアプリケーションを終了するいくつかの方法について説明します。

コマンドライン/終了文字の使用

Ctrl + C

geditを呼び出す際の1つの問題 コマンドラインから( gedit&を使用していない場合 )は、プロンプトを解放しないため、シェルセッションがブロックされることです。このような場合、Ctrl + C(「C」と組み合わせたCtrlキー)が便利です。これでgeditが終了します そして、すべての作業が失われます(ファイルが保存されていない限り)。 Ctrl+CはSIGINTを送信します geditへのシグナル 。これは停止信号であり、そのデフォルトのアクションはプロセスを終了することです。 geditを停止するようにシェルに指示します メインループに戻ると、プロンプトが返されます。

$ gedit
^C

Ctrl + Z

これはサスペンドキャラクターと呼ばれます 。 SIGTSTPを送信します 処理する信号。これも停止信号ですが、デフォルトのアクションは強制終了ではなく、プロセスを一時停止することです。

gedit を停止(強制終了/終了)します シェルプロンプトを返します。

   $ gedit
   ^Z
   [1]+  Stopped                 gedit
   $

プロセスが一時停止されると(この場合、 gedit )、 geditで何かを書いたりすることはできません 。バックグラウンドでは、プロセスはジョブになります 。これはjobsで確認できます コマンド。

  $ jobs
  [1]+  Stopped                 gedit

ジョブ 単一のシェルセッション内で複数のプロセスを制御できます。必要に応じて、ジョブを停止、再開、およびバックグラウンドまたはフォアグラウンドに移動できます。

geditを再開しましょう バックグラウンドで、プロンプトを解放して他のコマンドを実行します。これは、 bgを使用して行うことができます コマンドの後にジョブIDが続きます( [1] に注意してください) jobsの出力から その上。 [1] はジョブIDです。

   $ bg 1
   [1]+ gedit &

これは、 geditを開始するのと似ています &、を使用 :

   $ gedit &

killの使用

kill シグナルを細かく制御できるため、シグナル名またはシグナル番号の後にプロセスIDまたはPIDを指定することで、プロセスにシグナルを送ることができます。

killの好きなところ ジョブIDでも機能するということです。 geditを始めましょう gedit&を使用してバックグラウンドで 。 geditのジョブIDを持っていると仮定します jobsから コマンド、 SIGINTを送信しましょう geditへ :

   $ kill -s SIGINT %1

ジョブIDの前にを付ける必要があることに注意してください 、または kill PIDと見なされます。

kill シグナルを明示的に指定しなくても機能します。その場合、デフォルトのアクションは SIGTERMを送信することです。 、プロセスを終了します。 kill -lを実行します すべてのシグナル名を一覧表示し、 man killを使用します マニュアルページを読むコマンド。

killallの使用

ジョブIDまたはPIDを指定しない場合は、 killall プロセスを名前で指定できます。 geditを終了する最も簡単な方法 killallを使用する は:

   $ killall gedit

これにより、 geditという名前のすべてのプロセスが強制終了されます 。 killのように 、デフォルトのシグナルは SIGTERMです。 。 -Iを使用して大文字と小文字を区別しないオプションがあります :

   $ gedit &
   [1] 14852

   $ killall -I GEDIT
   [1]+  Terminated              gedit

killallが提供するさまざまなフラグの詳細については ( -uなど 、ユーザー所有のプロセスを強制終了できます)マニュアルページを確認してください( man killall

xkillの使用

VLCなどのメディアプレーヤーがグレー表示されたりハングしたりする問題が発生したことがありますか?これで、上記のコマンドのいずれかを使用してPIDを見つけてアプリケーションを強制終了するか、 xkillを使用できます。 。

xkill マウスを使用してウィンドウを強制終了できます。 xkillを実行するだけです ターミナルで、マウスカーソルを xに変更する必要があります または小さな頭蓋骨のアイコン。 xをクリックします 閉じたいウィンドウ上。 xkillの使用には注意してください ただし、manページで説明されているように、危険な場合があります。警告されました!

詳細については、各コマンドのマニュアルページを参照してください。 pkillなどのコマンドを調べることもできます およびpgrep


Linux
  1. Linuxで実行中のプロセスを再起動(またはリセット)する方法は?

  2. Linuxで「中断できない」プロセスを停止するには?

  3. Linux の特定のポートで実行されているプロセスを強制終了するには?

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

  2. Linux でプロセスを一時停止/再開する方法

  3. Linux で継続的に実行される Python スクリプトを手動で停止する方法

  1. Linuxでゾンビプロセスを見つけて殺す方法

  2. Linuxの特定のポートで実行されているプロセスを強制終了する方法は?

  3. コマンドを使用してLinuxでプロセスを強制終了する方法は?