プロセスを殺す

システム・プログラム

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/syspro-2000/2000-05-01 /process-kill.html
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.is.tsukuba.ac.jp/~yas/index-j.html

プロセスを殺そう

プロセスには、ls のように、勝手に終了するプログラムもあるが、エディタ のように、終了のための操作をして始めて終了するプログラムもある。 場合によっては、プロセスが自主的に終了する前に、 強制的に終了させなければならないことがある。 これを、プロセスを 殺す(kill) という。

プロセスを殺す方法には、次のような方法がある。

どちらの方法でも、裏ではシグナル(ソフトウェア割込み) という仕掛けが働く。

キーによるプロセスの強制終了

次は、cat のプロセスを^Cで強制終了している。
----------------------------------------------------------------------
% cat [←]
Line 1[←]
Line 1
Line 2[←]
Line 2
^C
% []
----------------------------------------------------------------------
^Cと同様に ^\ もあるが、 デバッグ用にcore という名前のファイルができることが異なる。 coreは、実行中のプロセスのメモリの内容をファイルに保存したものである。
----------------------------------------------------------------------
% cat [←]
Line 1[←]
Line 1
Line 2[←]
Line 2
^\
Quit (core dumped)
% ls -l core [←]
-rw-r--r--  1 yas       8430000 Sep  7 03:28 core
% []
----------------------------------------------------------------------
coreファイルはプログラムのデバッグに使える。

kill コマンドによるプロセスの強制終了

^C^\ で死なないプロセス を殺すには、kill コマンドを使う。
% kill pid [←]
プロセス識別子pidのプロセスを殺す。 オプションなしでkill コマンドを使っても死なないプロセスがある。 その場合はオプション -KILLをつけてkillコマンドを 実行する。
% kill -KILL pid [←]
これでほとんどのプロセスは死ぬ。 このコマンドはSIGKILLというシグナルをプロセスに送るものである。
↑[もどる] ←[4月24日] ・[5月01日] →[5月08日] [課題]
Last updated: 2000/04/30 21:07:10
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>