プロセスを終了する
●実行中のプロセスを終了する
実行中のプロセスを終了するには、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 |