バックグラウンド・プロセスを除去する (kill コマンド)
INTERRUPT キーを押しても、フォアグラウンド・プロセスが停止されない場合、またはバックグラウンド・プロセスを開始した後、プロセスを完了させないことを決めた場合、kill コマンドを使用してプロセスを取り消すことができます。
kill コマンドを使用してプロセスを取り消すためには、そのプロセスの PID 番号を知っていることが必要です。 kill コマンドの一般的なフォーマットは次のとおりです。
kill ProcessID
注:
- プロセスを除去するには、root ユーザー権限を持っているか、あるいはそのプロセスを開始したユーザーでなければなりません。 kill コマンドからプロセスへのデフォルト・シグナルは、-15 (SIGTERM) です。
- ゾンビ・プロセスを除去するには、その親プロセスを除去する必要があります。
- 除去したいプロセスのプロセス ID を判別するには、ps コマンドを使用します。 このコマンドを grep コマンドにパイピングして、必要なプロセスだけのリストを表示させます。 例えば、vi セッションのプロセス ID が必要な場合は、次のように入力します。
ps -l | grep vi
- 次の例では、find コマンドを出してバックグラウンドで実行します。 その後、このプロセスを取り消すことを決めました。 ps コマンドを出して、PID 番号をリストします。
$ find / -type f > dir.paths & [1] 21593 $ ps PID TTY TIME COMMAND 1627 pts3 0:00 ps 5461 pts3 0:00 ksh 17565 pts3 0:00 -ksh 21593 pts3 0:00 find / -type f $ kill 21593 $ ps PID TTY TIME COMMAND 1627 pts3 0:00 ps 5461 pts3 0:00 ksh 17565 pts3 0:00 -ksh [1] + Terminated 21593 find / -type f > dir.paths &
kill 21593 コマンドは、バックグラウンドの find プロセスを終了させ、2 番目の ps コマンドは、PID 21593 に関する状況情報を戻しません。 システムは、ユーザーが cd コマンドの場合を除いて、次のコマンドを入力するまで、終了メッセージを表示しません。
kill コマンドを使用すると、バックグラウンド・プロセスを取り消すことができます。 誤ってプロセスをバックグラウンドにしてしまった場合や、プロセスの実行時間が長過ぎることに気付いた場合は、この処理が必要になることがあります。
以下のように入力して、kill コマンドを smit
でも使用できます。
smit kill