- 1. 概要
- 2. インストール
- 3. 使い方
1. 概要
これは、「freebsd-users-jp」で、質問をしたときに、ある事象をつきとめるために教えていただいた、ツールです。
親プロセスからのツリー構造がわかるというスグレモノ!
2. インストール
cd /usr/ports/sysutils/pstree
make
make install
オプションは、ありません。
3. 使い方
この場合、親プロセスを知る必要があるわけですが。
「ps」コマンドの「j」オプションで、親プロセスを知ることができます。
「httpd」の子プロセスを例にとりますが。
「top」で見たときに
last pid: 65719; load averages: 0.26, 0.26, 0.33; battery: -1% up 4+00:48:34 08:30:43
119 processes: 1 running, 118 sleeping
CPU: 0.2% user, 0.0% nice, 0.1% system, 0.0% interrupt, 99.7% idle
Mem: 883M Active, 1372M Inact, 27M Laundry, 928M Wired, 353M Buf, 566M Free
ARC:
Swap: 12G Total, 1652M Used, 10G Free, 13% Inuse
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
65375 www 27 52 0 500M 255M piperd 0 0:01 0.58% httpd
65719 root 1 20 0 15M 3604K CPU2 2 0:00 0.06% top
1743 mysql 44 20 0 2056M 83M select 1 6:48 0.02% mysqld
とまぁ、最上位に「httpd」の子プロセスの一つがいます。
これの親プロセスを「ps -j」で調べます。
$ ps -j 65375
USER PID PPID PGID SID JOBC STAT TT TIME COMMAND
www 65375 65370 65370 65370 0 I - 0:00.66 /usr/local/sbin/httpd -DNOHTTPACCEPT
「PPID」が親プロセスの「ID」になるわけです。
これを「pstree」で見ると
pstree 65370
-+= 65370 root /usr/local/sbin/httpd -DNOHTTPACCEPT
|--- 65372 www /usr/local/sbin/httpd -DNOHTTPACCEPT
|--- 65374 www /usr/local/sbin/httpd -DNOHTTPACCEPT
|--- 65375 www /usr/local/sbin/httpd -DNOHTTPACCEPT
|--- 65376 www /usr/local/sbin/httpd -DNOHTTPACCEPT
\--- 65377 www /usr/local/sbin/httpd -DNOHTTPACCEPT
と、親プロセスからのツリー構造がわかるわけです。
自分が意図的に実行しているわけでないプロセスが、「cron」や他のデーモンから起動されているときに、どのプロセスから起動されたかが突き止められます。
これで、元々の問題であったことが突き止められそうです。
教えてくださった方に感謝いたします。
|