use strict; use warnings; my $pid = open my $CMD, "| sar -c 1 2 \&>/dev/null" or die $!; while (1) { open my $STAT,'<',"/proc/$pid/stat" or die $!; my $state = (split /\s+/, <$STAT>)[2]; close $STAT; if ($state eq 'Z') { close $CMD or die $!; waitpid($pid,0); last; } sleep 1; }