next up previous contents
: ネットワーク環境を調べる : シェルの基本操作 : コマンドのエイリアスと tcshの設定ファイル   目次


プロセス操作

UNIXでは、ひとつの計算機を複数のユーザーが同時に利用でき、また、ひとりの ユーザーが複数のプログラムを同時に走らせることができます。UNIX では、動 いているプログラムのことを、プロセス(process)と呼びます。 時々、プログラムが暴走して、おかしくなってしまうことがあります65。 そんな場合は、そのプロセス番号を調べて、コマンドラインから終了させます。 現在実行中のプロセスの表示をするのには、ps コマンドを用います。ps では、 現れないプロセスもありますので、そんな時は、ps -x (または ps x )として、 すべてのプロセスを表示させます。

 % ps (プロセスが多い場合は、ps | less とした方が良いでしょう)
  PID  TT STAT   TIME COMMAND
  161   1 S      0:00 tcsh
13714   1 S      0:01 asclock -12 -shape -position -1-1
 ... (中略)
13718   1 S      0:00 xbiff -bg #8e8a9e -fg #00003f -geometry 45x45
13721   1 S      0:00 /usr/X11R6/lib/X11/afterstep/Pager 13 4 /tmp/
13867  p2 S      0:00 -tcsh
14421   1 S      0:02 emacs -f mh-rmail
16725  p3 S      0:01 emacs
16753  p3 R      0:00 ps

ここで、PIDとなっているのが、プロセス番号 (process ID) です。 プロセスを終了させるためには、kill コマンドを用います。単なる kill では、 死なないプロセスの場合は、kill -9 プロセス番号で終了させます。

 % kill 16725



練習 4

シェルから、いくつかプロセスを立ち上げてみましょう。

  % mlterm & 
  % xcalc & 
  % xclock &
ps コマンドで、立ち上げたプロセスの プロセス番号を調べ、kill してみましょう。



普段に比べて、コンピュータの応答がやけに遅いと感じることがあります。 そんな場合は、top コマンドを使い、どのプロセスが CPU を消費しているのか を調べます。top は、現在のシステムの負荷(load) やメモリーの使用量など、 多くの情報をリアルタイムで表示してくれます。top から抜けるのは、q キーです。

  % top 
  last pid: 30093;  load averages:  0.00,  0.00,  0.00    up 8+04:56:10  17:43:02
  28 processes:  1 running, 27 sleeping
  CPU states:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
  Mem: 92M Active, 254M Inact, 69M Wired, 564K Cache, 60M Buf, 74M Free
  Swap: 2048M Total, 2048M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
  591 root          1  96    0   165M 19912K select   0:38  0.00% Xorg
  405 root          1  96    0  1664K  1292K select   0:15  0.00% amd
  498 root          1  96    0  3364K  2132K select   0:11  0.00% sendmail
  ... (以下略、この例は、正常な場合のものです。)

自分のプロセスが暴走していれば(異常にCPUを消費していれば)、kill で殺せ ますが、他人のプロセスがゾンビになっている場合には消せませんので、管理者 に通報して、kill してもらいましょう。