#PBS脚本qsub提交后无输出、任务快速终止问题排查求助
PBS脚本错误点及修复方案
- 补充说明:PBS提交的任务默认不会将标准输出打印到提交任务的终端屏幕上,所有echo输出都会写入
-o参数指定的日志文件中,属于正常设计。 - 错误1:输出/错误路径配置错误
#PBS -o和#PBS -e参数要求指定具体文件路径,你当前填写的/home/wordir/echo是目录路径,PBS无法将标准输出、错误日志写入目录,直接导致日志生成失败,严重时会直接终止任务。
修复示例:
#PBS -o /home/wordir/echo/echotest.out #PBS -e /home/wordir/echo/echotest.err
- 错误2:rfluka进程被提前终止
你在nohup rfluka -N0 -M1 input &末尾加了&将进程放到后台运行,而PBS任务的主脚本执行完所有命令后会直接结束,同时销毁任务对应的所有进程资源,后台的rfluka刚启动就会被杀掉,这就是任务几秒就变为完成状态、无产物的核心原因。你本地终端运行时终端会话未退出,后台进程可以正常运行,和PBS的执行逻辑不同。
修复方案:去掉末尾的&让rfluka在前台运行,PBS会等待程序执行完成再结束任务;如果确实需要后台运行,要在脚本最后加wait命令,等待所有后台子进程执行完成再退出。 - 错误3:nprocs变量赋值语法错误
你用单引号包裹命令替换内容nprocs='cat $PBS_NODEFILE|wc -I',单引号不会执行内部命令,只会把字符串原样赋值给变量,且wc的统计行数参数是小写l不是大写I,该错误虽不影响本次任务运行(你后续未调用该变量),但存在语法隐患。
修复示例:
nprocs=$(cat $PBS_NODEFILE | wc -l)
内容的提问来源于stack exchange,提问作者rusby19
相关产品推荐
相关产品推荐

