「エアコンの安全な修理・適切なフロン回収」はこちら

プロセスを終了する

プロセスを終了する

実行中のプロセスを終了する
実行中のプロセスを終了するには、killコマンドを使用します。
引数としてPID(プロセスID)を指定する必要があり、killコマンドを実行するまえにpsコマンドを使用して終了させるプロセスのPIDを確認します

root@Lion:~# ps -a ←すべてのプロセスを表示します。
PID TTY TIME CMD
10086 pts/0 00:00:00 su
10087 pts/0 00:00:00 bash
10148 pts/1 00:00:00 su
10149 pts/1 00:00:00 bash
10188 pts/0 00:00:00 ps
root@Lion:~# kill 10148 ←killコマンドでPID10148「su」を終了します。
root@Lion:~# ps 10148 ←PID10148「su」の状態を表示します。
PID TTY STAT TIME COMMAND
                     ←PID10148「su」が停止したため表示されません。

プロセスを強制終了する
通常のkillコマンドでプロセスを終了出来ない場合、強制終了させる方法があります。
killコマンドにはシグナルというオプションがあり、これによりプロセスをコントロールでき、シグナル番号「9」が「SIGKILL」として割り当てられており、このシグナル番号、またはシグナルをオプションとして指定し、引数としてPID(プロセスID)を指定して実行することで強制終了することができます

root@Lion:~#ps -a ←プロセスをすべて表示する
PID TTY TIME CMD
10086 pts/0 00:00:00 su
10087 pts/0 00:00:00 bash
10279 pts/1 00:00:00 su
10280 pts/1 00:00:00 bash
10315 pts/1 00:00:00 top
10316 pts/0 00:00:00 ps
root@Lion:~# kill -9 10315 ←シグナル番号をオプションとして強制終了します。

特定コマンドのプロセスをすべて終了する
同じコマンドを使用して複数の処理を行い、それらすべてを終了させたい場合はkillallコマンドを使用します。

root@Lion:~# ps -acx ←プロセスを表示します。
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init
2 ? S< 0:00 migration/0
3 ? SN 0:00 ksoftirqd/0
4 ? S< 0:00 watchdog/0<略>1818 ? S 0:00 postmaster
1840 ? Ss 0:00 atd
1847 ? S 0:00 postmaster
1848 ? S 0:00 postmaster
1849 ? S 0:00 postmaster1979 ? Ss 0:00 httpd
1980 ? S 0:00 rotatelogs
1981 ? S 0:00 rotatelogs
1982 ? S 0:00 rotatelogs
1983 ? S 0:00 rotatelogs
1984 ? S 0:00 rotatelogs
root@Lion:~# killall postmaster ←postmasterを終了します。
root@Lion:~# ps -acx ←プロセスを表示します。
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init
2 ? S< 0:00 migration/0
3 ? SN 0:00 ksoftirqd/0
4 ? S< 0:00 watchdog/0<略>
                             ←postmasterが終了しています。
1979 ? Ss 0:00 httpd
1980 ? S 0:00 rotatelogs
1981 ? S 0:00 rotatelogs
1982 ? S 0:00 rotatelogs
1983 ? S 0:00 rotatelogs
1984 ? S 0:00 rotatelogs
タイトルとURLをコピーしました