openlava & perl,集群提交并等待任务结束后执行新任务 &打开新terminal执行任务

#!/usr/bin/perl
use strict ;
use warnings ;
my $curdir = $ENV{PWD};
print("% current dir is : $curdir \n");
##更改运行文件夹;
chdir('./01_mbist_insertion');
##提交名为run_mbist_insertion的脚本任务,等待其完成后,更改目录,执行下一个任务;
submit_and_wait("./run_mbist_insertion");
chdir("../02_edt_gen");
submit_and_wait("./run_edt_insertion");
chdir("../03_scan_insertion");
fork_a_tab("bsub -q short ./run_scan_insertion");
#submit and wait the job done;
sub submit_and_wait {
my $command = shift;
print "$command\n";
my $job = `bsub -q short $command`;
print "$job\n" ;
chomp $job;
my ($job_id) = $job =~ /\<(\d+)\>/;
print " already submit the job: $job_id\n";
my $status = '';
while ($status ne 'DONE' && $status ne 'EXIT') {
sleep (59);
$status = `bjobs -noheader -o 'stat' sjob id`;
#print "wating for $job_id finish...\n" 
chomp $status;
]
if ($status eq 'DONE' ){
print "job $job_ id finished ... \n";
}
if ($status eq 'EXIT' ){
print "job $job_id exit because error ... \n";
exit 0;
}
}
# open new tab to running a specialty job „note! must use with waitpid;
sub fork_a_tab {
my $commond = shift;
my $pid = fork();
if ($pid == 0) {
print ("opening new tab... \n");
sleep (2);
##根据集群所使用的gui最修改
exec ("mate-terminal --tab -t $commond -- csh -c '$commond;csh'");
}
waitpid($pid,0);
}

在单机上执行的版本(无集群)

#!/usr/bin/perl

use strict;
use warnings;
chdir("./workspace");
run_to_finish('./job.tcl','job_end');
## 需要在所执行的脚本的末尾添加创建temp文件的命令
#set tempfile [open $tempfilepath w]
# Close the file
#close $tempfile

sub run_to_finish {
	my($tcl_name,$temp_file) = @_;
	my $pid = fork();
	if ($pid == 0) {
		print("opening a new tab ... \n");
		exec("gnome-terminal --tab -- csh -c '$tcl_name;csh'");
	}
	print("waiting the job finish ... \n");
	while(!-e $temp_file) {
	sleep(60); # 每60秒 检查一次任务是否完成;
	}
	if(-e $temp_file) {
	unlink $temp_file or die "could not delete the file $temp_file !! \n";
	print("the job $tcl_name was finished ...\n");
	waitpid($pid,0);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺旺脆兵兵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值