首页 文章

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

提问于
浏览
1

我们创建一个扭矩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

我们收到错误消息:

更多testpbs.sh.err /var/spool/torque/mom_priv/jobs/8.centos64.SC:line 9:sleep:command not found

但是,我们在命令行中运行 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:/根/斌:/家庭/阿明/箱

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

PBS_O_LOGNAME = amin,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 / spool / mail / root,PBS_O_SHELL = / bin / bash, PBS_O_LANG = en_US.UTF-8,PBS_O_WORKDIR = / data / software / torque-4.2.6.1,PBS_O_HOST = centos64,PBS_O_SERVER = centos64

Thank larsks's great help. The following works:

#!/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 回答

  • 2

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

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

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

相关问题