linux - 将环境变量传递给 qsub 作业

标签 linux qsub

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

我正在运行以下 qsub 命令:

qsub -pe slots 16 -S /bin/bash -cwd -N "pipeline" -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 slots 16 -S /bin/bash -cwd -N "pipeline" -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”(以检查环境变量),但没有添加我需要的路径。

最佳答案

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

qsub -v JAVA_HOME ...

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

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

关于linux - 将环境变量传递给 qsub 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34375880/

相关文章:

node.js - 尝试安装 LESS 时出现 "Please try running this command again as Root/Administrator"错误

linux - 如何知道 Libreoffice 安装在 Docker 镜像中的什么位置?

linux - qsub 数组作业延迟

mysql - 无权访问 MySQL 上的任何内容

.net - C# 程序在 Linux 中不能在单声道下运行。

linux - UUID 和磁盘镜像之间有什么关系?

parameter-passing - 如何将参数从 QSub 传递到 Bash 脚本?

linux - 我可以在使用 qsub 提交 shell 脚本后删除它而不影响作业吗?

bash - 如何在我的终端中查看通过 qsub 提交的作业的输出?

cluster-computing - qsub 集群上的作业后检查实时输出