qsub提交到PBS的脚本中不能使用 &(后台运行命令)?!

在使用qsub提交到PBS作业系统的shell脚本中,如果包含&进行后台运行,会导致程序未正常运行。原因是PBS在遇到&时会立即退出脚本,而myprog还没来得及返回结果。解决方案是在使用&后添加wait命令,确保程序执行完毕。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pbs_script.sh

#!/bin/bash -
myprog arg1 arg2 &


直接前台交互运行上面的脚本(即:./pbs_script.sh)时,myprog能正常运行并输出相应结果。但是,如果用qsub提交上面的脚本到PBS作业系统时,myprog却不会被运行。


若去掉后台运行命令&,则提交PBS时myprog也能正常运行。即:

myprog arg1 arg2


其原因在于:

原来的代码,PBS作业系统读取脚本到第二行&处时,将 myprog 交给后台,然后立即退出了该脚本。但是此时扔到后台的myprog还没来得及返回运行结果给PBS。所以造成PBS没有返回myrpog的结果给用户。

据此,任何PBS脚本(即用qsub命令提交给PBS作业系统的shell脚本)中,一旦使用了后台运行命令&,其后一定要加上wait命令。即:

#!/bin/bash -
myprog arg1 arg2 &
wait
这样,PBS读取完第二句后会先等待后台返回myprog的运行结果,然后才退出该脚本。



Thanks for suggests from:  http://biowulf.nih.gov/user_guide.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值