本文へトップページ第6章 プロセスとデーモン>6.1節 プロセス
前のページへ 次のページへ

6.1 プロセス



プロセス

 Linux上にはたくさんのプログラムが同時に動いています。それぞれのプログラムは一つだけで処理を行なっているものもありますし、複数のプログラムによって一つの処理が行われている場合もあります。このプログラムが動作している最小の単位を プロセスと呼びます。
 どんなプロセスが動いているかを確認するには ps コマンドを使います。オプションとして 命令始まり-x命令終わり をつけるとそのユーザの権限で実行しているプロセスが表示されます。

ターミナルウィンドウでの実行例始まり
命令始まり[student]$ ps -x改行

   表の開始
      
PID TTY STAT TIME COMMAND改行
15064 ? S 0:01 /usr/bin/gnome-session Classic改行
15091 ? S 0:00 ssh-agent /etc/X11/xinit/Xclients改行
15107 ? S 0:00 gnome-smproxy --sm-config-prefix /.gnome-smproxy-JlFR改行
15120 ? S 0:00 esd -nobeeps -as 30改行
15126 ? S 0:04 /usr/bin/sawfish --sm-client-id 11a0fc83ef00009997765改行
15128 ? S 0:02 xscreensaver -no-splash -timeout 20 -nice 10改行
15135 ? S 0:03 panel --sm-config-prefix /panel.d/default-uuahLE/ --s改行
15137 ? S 0:00 gnome-name-service改行
15140 ? S 0:01 tasklist_applet --activate-goad-server tasklist_apple改行
15144 ? S 11:50 deskguide_applet --activate-goad-server deskguide_app改行
15150 ? S 0:08 rxvt -rv改行
15151 pts/0 S 0:01 bash改行
15839 ? S 0:00 rxvt -rv改行
15840 pts/1 S 0:00 bash改行
15974 pts/0 S 0:03 xemacs daemon.html改行
15979 pts/0 R 0:00 ps -x改行
表の終了 [student]$命令終わり
ターミナルウィンドウでの実行例終わり

 各プロセスは プロセス ID という番号が割り振られています。
 また 命令始まり-a命令終わり オプションをつけるとシステム全体で動作しているプロセスを確認することができます。さらに 命令始まり-u命令終わり オプションをつけると CPU やメモリの占有率なども確認できます。

プロセスの削除

 それぞれのプロセスは処理が終了すればプロセスも消えるはずですが、バグのあるプログラムの場合プロセスが終了しないことがあります。このようなプログラムは直接削除する必要があります。
 コマンドライン上からプログラムを動作させている場合は [Ctrl]+[C] ([Ctrl]キーを押しながら[C] キーを押す) で終了することができます。しかしそれでも終了しないような場合には別のターミナル上からエラーを起こしているプロセスの ID を確認し killコマンドで終了させることができます。

ターミナルウィンドウでの実行例始まり
命令始まり[student]# kill 15974改行
[student]#命令終わり				
ターミナルウィンドウでの実行例終わり

 消すことができるプロセスは kill コマンドを実行するユーザに権限のあるプロセスだけですが、誤って別のプロセスを消してしまわないように気をつけないといけません。このコマンドでも終了しない場合は 命令始まり-KILL命令終わり オプションをつけて強制終了します。

ターミナルウィンドウでの実行例始まり
命令始まり[student]# kill -KILL 15974改行
[student]#命令終わり				
ターミナルウィンドウでの実行例終わり

バックグラウンドジョブ

 通常はターミナル上でコマンドなどの処理を実行するとその処理が終るまではプロンプトが表示されず、別の処理が実行できません。それに対してコマンドを実行するときにコマンドの最後に & を付けて実行すると処理が終らなくてもプロンプトが表示されます。このとき実行した処理はユーザの見えないところで実行されています。このように実行される処理のことを バックグラウンドジョブ といいます。
 バックグラウンドジョブも ps コマンドで確認できます。またバックグラウンドジョブはjob コマンドで確認できます。




本文先頭へトップページ第6章 プロセスとデーモン>6.1節 プロセス
前のページへ 次のページへ