PS コマンドで表示されるタイトル

ようやく風邪が治りかけてきました。

解熱鎮痛剤を飲んでいても熱っぽかったので本日は会社を休んでしまいました。

月曜から休むとか悪い社員だなぁと思っていたら、

なんと、後輩の yanagibashi 君も大先輩の noboru 様も風邪で休んでいたそうです。

ちなみにこの休んだ 3人には共通点があるのですが、なんでしょうねぇ・・・(笑)

今回のネタは、ps コマンドで表示されるコマンド名の書き換えです。

BSD 系の OS では、setproctitle() という関数で書き換えられます。


setproctitle("nantara: %d", (int) getpid());

こんな感じですね。

これでなにがうれしいかというと、


mtaneda@hoge:~% ps
PID TT S TIME COMMAND
868 pts/1 S 0:00 -tcsh
1372 pts/1 T 0:00 /bin/sh ./startup.sh
1373 pts/1 T 0:00 httpd: httpd core
1374 pts/1 T 0:00 httpd: sub process ::1:45844
1375 pts/1 T 0:00 httpd: sub process 192.168.1.23:47912
1376 pts/1 T 0:00 httpd: sub process ::1:45234
1388 pts/1 O 0:00 ps

のようにマルチプロセスのプログラムを ps コマンドでみたときに、どのプロセスがなにをやっているか把握しやすくなります。

便利ですね。