在扭矩pbs中找不到睡眠命令但在壳中工作

时间:2014-01-21 03:11:20

标签: shell pbs torque

我们创建一个扭矩pbs文件“ testpbs ”,如下所示:

#!/bin/sh
#PBS -N T1272_flt
#PBS -q batch
#PBS -l nodes=1:ppn=1
#PBS -o /data/software/torque-4.2.6.1/testpbs.sh.out
#PBS -e /data/software/torque-4.2.6.1/testpbs.sh.err  

sleep  20

然后提交了testbps文件。

  

qsub testpbs

我们收到了错误消息:

  

more testpbs.sh.err

     

/var/spool/torque/mom_priv/jobs/8.centos64.SC:line 9:sleep:command   找不到

但是,我们在命令行中运行 sleep 20 。没有错误发生。

  

$ sleep 20

提前致谢。

我们在shell中运行了 echo $ PATH 并获得了以下内容:

  

echo $ PATH

     

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin:/data/software/cufflinks-2.0.2 .Linux_x86_64:/home/amin/bin/blast-2.2.19:/根/ bin中:/家庭/阿明/ bin中

我们使用 qstat -f jobid 查看此作业的详细信息。

  

PBS_O_LOGNAME =阿明,

     

PBS_O_PATH = /usr/lib64/qt-3.3/bin: / usr / local / sbin / usr / local / bin :   / sbin: / bin :/ usr / sbin: / usr / bin :/ sbin:/ bin:/ usr / sbin:/ usr / bin:   / usr / X11R6 / bin:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin:   /data/software/cufflinks-2.0.2.Linux_x86_64:   /home/amin/bin/blast-2.2.19:/ root / bin:/ home / aimin / bin,

     

PBS_O_MAIL =的/ var /线轴/邮件/根,

     

PBS_O_SHELL = /斌/庆典,

     

PBS_O_LANG =的en_US.UTF-8,

     

PBS_O_WORKDIR = /数据/软件/扭矩4.2.6.1,

     

PBS_O_HOST = centos64,

     

PBS_O_SERVER = centos64

感谢larsks的大力帮助。以下作品:

#!/bin/sh
#PBS -N T1272_flt
#PBS -q batch
#PBS -l nodes=1:ppn=1
#PBS -o /data/software/torque-4.2.6.1/testpbs.sh.out
#PBS -e /data/software/torque-4.2.6.1/testpbs.sh.err  

export PATH=$PBS_O_PATH
sleep  20

1 个答案:

答案 0 :(得分:2)

尝试使用命令的完整路径替换sleep(可能是/usr/bin/sleep),看看是否会改变行为。如果是这样,那么你的脚本在Torque下运行时,只会有一个不同的(或空的)$PATH变量。

您可以(a)继续使用显式路径,或(b)在脚本中明确设置$PATH,例如:

PATH=/bin:/usr/bin:/usr/local/bin