【问题标题】:Pass environment variable to qsub jobs将环境变量传递给 qsub 作业
【发布时间】:2015-12-19 22:06:52
【问题描述】:

我想在 qsub 命令的 PATH 环境变量中添加一个字符串。编辑 .sh 文件不是一个选项,因为它是在管道中生成和运行的(我可以编辑 qsub 命令选项)。

我正在运行以下 qsub 命令:

qsub -pe 插槽 16 -S /bin/bash -cwd -N "管道" -j y -o /home/user/log/out.log /home/user/pipeline/runthis.sh

我需要将以下 PATH 环境变量添加到正在运行的 shell:

/home/user/jre1.8.0_66/bin

(这是因为脚本依赖的 java 版本比集群上的版本更新)。

我尝试了以下方法:

qsub -pe 插槽 16 -S /bin/bash -cwd -N "管道" -j y -o /home/user/log/out.log /home/user/pipeline/runthis.sh -v PATH=/home/pa354/jre1.8.0_66/bin:$PATH -V

这不起作用,我在正在运行的 bash 文件中添加了“env”(以检查环境变量),我需要的路径尚未添加。

【问题讨论】:

    标签: linux qsub


    【解决方案1】:

    您需要在您的qsub 命令中使用-v

    qsub -v JAVA_HOME ...
    

    这会将环境变量从调用环境传递到生成的作业中。

    请注意,qsub-v 参数必须位于您在远程节点上运行的实际命令的参数之前。您似乎已经在整个命令行的末尾尝试了它,但它不起作用。

    【讨论】:

    • 是的,但是我如何专门将字符串添加到 PATH 变量中。我尝试了以下 qsub -V、qsub -v PATH=/.../../bin$PATH、qsub -v PATH=/../../bin$PATH -V。我正在运行一个 bash 脚本,“env”输出没有显示对 PATH 变量的任何添加。
    • @ParsaAkbari:请参阅我的更新,您需要稍微重新排序命令行的元素。
    猜你喜欢
    • 2021-01-21
    • 2013-12-29
    • 2022-06-16
    • 2015-03-25
    • 2021-09-05
    • 2020-03-27
    • 2017-03-30
    • 2018-08-19
    • 1970-01-01
    相关资源
    最近更新 更多