ps -ef2.2
を実行すれば、現在実行されている全プロセスについての表示が得られま
す。より詳細な情報を得たい場合、ps -elを用います。
ps -efの出力の各欄の意味を説明しておくと、
ps -ef | grep コマンド名とすれば良いわけです。ps -elの場合、さらにプロセスのサイズ、累積 CPU時間なども分かります。 psコマンドの出力を見る場合、次のような点に注意してみます。
リアルタイムで各プロセスの状況を知りたければ、フリーなツールでtop 2.3とい うものがありますのでこれをインストールするのもよいでしょう。これはCPU 時間の消費の大きなプロセスから順に表示してくれますから、システムの活動 状況が手にとるように分かります。
psコマンドの実行例を見てみましょう。
ps -ef UID PID PPID C STIME TTY TIME COMD root 0 0 80 Jul 28 ? 0:22 sched root 1 0 80 Jul 28 ? 2:42 /etc/init - root 2 0 80 Jul 28 ? 0:06 pageout root 3 0 80 Jul 28 ? 21:52 fsflush root 234 1 22 Jul 28 ? 0:00 /usr/lib/saf/sac -t 300 momma 11191 1 80 03:11:09 console 0:01 -csh root 123 1 80 Jul 28 ? 0:01 /usr/sbin/inetd -s root 104 1 80 Jul 28 ? 0:21 /usr/sbin/rpcbind root 106 1 10 Jul 28 ? 0:00 /usr/sbin/keyserv root 188 1 80 Jul 28 ? 0:07 /usr/lib/utmpd root 114 1 19 Jul 28 ? 0:00 /usr/sbin/kerbd root 112 1 80 Jul 28 ? 0:12 /usr/lib/netsvc/yp/ypbind -broadcast root 126 1 42 Jul 28 ? 0:00 /usr/lib/nfs/statd root 128 1 80 Jul 28 ? 0:01 /usr/lib/nfs/lockd root 147 1 80 Jul 28 ? 1:42 /usr/lib/autofs/automountd root 198 1 75 Jul 28 ? 0:01 /usr/sbin/vold root 151 1 70 Jul 28 ? 0:01 /usr/sbin/syslogd root 171 1 18 Jul 28 ? 0:00 /usr/lib/lpsched root 161 1 80 Jul 28 ? 0:08 /usr/sbin/cron root 179 171 12 Jul 28 ? 0:00 lpNet root 180 1 80 Jul 28 ? 0:01 /usr/lib/sendmail -bd -q1h
これはSolarisシステムで動作しているプロセスの一部です。誰もログインし
ていない状態でもこのように数多くのプロセスが動いています。これらのシス
テムの動作を影で支えるプロセスを「デーモン(daemon)」2.4と呼んでいます。上のプロセスの中に、名前が ``d''で終っ
ているものが多いのは、「デーモン」を略しているためです。
UNIXシステムにおいては、プロセスの生成は、親プロセスがfork()システムコー ルで自分の複製を作り、その後子プロセスの方がexex()システムコールを実行 することにより別プロセスに変化することにより行なわれます。この fork()-exec()によるプロセスの生成をspawnと言っています。 プロセス番号0から3までのプロセスは全プロセス中でも特別な地位を占めてい ます。
これ以外の全プロセスは、initによって後述するrcファイルが実行されることに より生み出されたものなのです。