Getting idle processes PID from Perl

There is a nice lib for Perl for working with processes in Linux. And it could be used to get PIDs of processes that have been working more than some amount of time.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/usr/bin/perl -w
use strict;
use Proc::ProcessTable;
my $period = time-(2*60*60);
# in this case it's two hours
my $t = new Proc::ProcessTable;
foreach my $p ( @{$t->table} ) {
if ( ($p->start() < $period) and ($p->cmndline() =~ /your_process_name/) ) {
print $p->pid, "n";
}
}
#!/usr/bin/perl -w use strict; use Proc::ProcessTable; my $period = time-(2*60*60); # in this case it's two hours my $t = new Proc::ProcessTable; foreach my $p ( @{$t->table} ) { if ( ($p->start() < $period) and ($p->cmndline() =~ /your_process_name/) ) { print $p->pid, "n"; } }
#!/usr/bin/perl -w
use strict;
use Proc::ProcessTable;
my $period = time-(2*60*60);
# in this case it's two  hours
my $t = new Proc::ProcessTable;
foreach my $p ( @{$t->table} ) {
if (  ($p->start() < $period) and ($p->cmndline() =~ /your_process_name/) ) {
print $p->pid, "n";
}
}

Now you can use simple wrapper to kill them gracefully.

Didn’t find the answer to your question? Ask it our administrators to reply we will publish on website.

Leave a Reply

Your email address will not be published. Required fields are marked *