特定のプロセスが立ち上がっているかどうか調べる
それpsで出来るよ、、、って結論が先に出るんですけどもw
敢えてCPANモジュールでやってみようの巻。
これが便利。
$ perl -MProc::ProcessTable -e 'print join("\n", Proc::ProcessTable->new->fields);'
こんなワンライナーでProc::ProcessTable::Processオブジェクトがサポートしているフィールド一覧を調べる事が出来ます。
例えば特定のプロセスが立ち上がっているかどうか調べたい時、
#!/usr/bin/perl use strict; use warnings; use Proc::ProcessTable; my $fname = "mysqld"; my $t = Proc::ProcessTable->new; if (grep { $_->fname =~ /^${fname}$/x } @{$t->table}) { print "$fname is running"; } else { print "$fname is not running"; }
みたいな具合。
例えば特定のモジュールのインストール時に特定のプロセスが立ち上がって無きゃダメだとか、
あるいは死活確認の為に云々なんて時に使うと良いかもしれない。