プロセスが誤動作した場合、プロセスを終了または強制終了したい場合があります。この投稿では、サンプルアプリケーションとして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 。