37 lines
896 B
Perl
37 lines
896 B
Perl
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
my $me = $ENV{'USER'};
|
|
my @jobs_running_ln = `qstat -u $ENV{'USER'}`;
|
|
if (!@jobs_running_ln || scalar(@jobs_running_ln)<1){
|
|
print "No running jobs for user $me\n";
|
|
exit();
|
|
}
|
|
|
|
my %jobs_running;
|
|
foreach my $job_ln (@jobs_running_ln){
|
|
$job_ln=~/^(\S+)/;
|
|
$jobs_running{$1}=1 if $1;
|
|
}
|
|
|
|
my $dir=$ARGV[0] ? $ARGV[0] : '.';
|
|
if ($dir && -d $dir){
|
|
# read jobnumbers in current directory (and directory passed as variable) and kill them (start at the last job and move to oldest)
|
|
if (-s $dir."/jobnumbers.out"){
|
|
my @job_sub = `tac $dir/jobnumbers.out`;
|
|
chomp(@job_sub);
|
|
foreach my $job (@job_sub){
|
|
system("qdel -W force $job") if $jobs_running{$job};
|
|
# twice to make sure
|
|
system("qdel -W force $job >/dev/null 2>/dev/null") if $jobs_running{$job};
|
|
}
|
|
unlink($dir."/jobnumbers.out");
|
|
}
|
|
else{
|
|
print "No previous jobs found\n";
|
|
}
|
|
}
|
|
|