12345678910111213141516171819202122232425262728293031 |
- #!/usr/bin/perl
- use Getopt::Std;
- getopt('urt');
- unless ($opt_r && $opt_t){
- print "Usage: $0 [ -u user] -r sample_count -t sleep_time\n";
- exit(0);
- }
- my $i;
- my @proc = "";
- for ($i = 0; $i < $opt_r ; $i++){
- if ($opt_u){
- $proc = `/usr/sysv/bin/ps -u $opt_u `;
- $proc =~ s/^.*\n//;
- $proc =~ s/\s*(\d+).*\n/\1 /g;
- @proc = split(/\s+/,$proc);
- } else {
- opendir(my $dh, '/proc') || die "Cant't open /proc: $!";
- @proc = grep { /^[\d]+$/ } readdir($dh);
- closedir ($dh);
- }
- foreach my $pid (@proc){
- my $command = "/usr/bin/procstack $pid";
- print `$command 2>/dev/null`;
- }
- select(undef, undef, undef, $opt_t);
- }
|