主要是利用查找/proc目录下的相关文件进行查找.
#!/usr/bin/perl use strict; use warnings; #usage: process_grep.pl ProcessName exit( main(@ARGV) ); sub main { my $Phash; my $ProcessName = shift; my $PROC_DIR = "/proc"; chdir $PROC_DIR; my @pids = glob "[0-9]*"; for my $pid (@pids) { open( FH, "$pid/cmdline" ) or die "Can't $pid file $!"; $Phash->{$pid} = $_ while <FH>; } delete $Phash->{"$$"}; for my $pid ( keys %$Phash ) { print $pid, "\n" if $Phash->{$pid} =~ /$ProcessName/; } return 0; }