use strict; use warnings; opendir my $proc_dh, '/proc' or die "Can't opendir '/proc': $!"; my @every_pid = grep /\d/, readdir $proc_dh; closedir $proc_dh; chomp @every_pid; my @every_cmd; foreach my $pid ( @every_pid ) { open my $cmdline_fh, '<', "/proc/$pid/cmdline" or die "Can't open '/proc/$pid/cmdline': $!\n"; my ($cmd) = split /\0/, scalar <$cmdline_fh>; push @every_cmd, $cmd if defined $cmd; close $cmdline_fh; } if ( grep { '/usr/sbin/sshd' eq $_ } @every_cmd ) { print "found\n"; } else { print "not found\n"; }