【问题标题】:Can I qsub without source .bash_profile我可以在没有源 .bash_profile 的情况下进行 qsub
【发布时间】:2012-03-24 01:30:43
【问题描述】:

当我使用 qsub 提交一堆作业时,qsub 将首先获取 .bash_profile。那么我如何才能首先在没有 source .bash_profile 的情况下完成工作。

【问题讨论】:

  • 为什么避免加载 bash_profile 对您很重要?
  • 我想写一个qsub脚本供公众使用,但可能是某些人本地env的bash_profile或bashrc。会与 qsub 作业冲突。

标签: linux shell cluster-computing .bash-profile qsub


【解决方案1】:

我认为有许多不同的qsub 命令与不同的批处理系统相关联。告诉我们您使用的是哪个批处理系统会很有用。

我记得,大多数此类系统都设置了一个或多个环境变量,您可以在 .bash_profile 中进行测试。我使用的系统要么将$ENVIRONMENT 设置为"BATCH",要么将$PBS_ENVIRONMENT 设置为"PBS_BATCH"。 (这些可能已过时;请检查您的文档。)

您可以修改您的 .bash_profile 以执行以下操作:

if [ "$ENVIRONMENT" != "BATCH" ] ; then
    # existing code here
fi

所以你的.bash_profile 仍然有源,但如果它在批处理环境中运行,它不会做任何事情。

这很容易修改,所以一些命令仍然被执行。

【讨论】:

    【解决方案2】:

    如果您知道如何将参数传递给 bash 本身,那么您正在寻找的是--noprofile。但我不熟悉 qsub,快速浏览一下手册并没有让我知道如何执行此操作。你能以某种方式指定你的作业在哪个 shell 下运行吗?

    【讨论】:

    • qsub 有一个选项 -S “-S 选项允许用户指定将被调用来处理批处理作业脚本的程序(通常是 shell)。”也许我可以使用“qsub -S /bin/bash --noprofile”,但是 qsub 无法识别 /bin/bash 和 --noprofile 之间的空间。
    • 你试过qsub -S '/bin/bash --noprofile'吗? (使用引号使 -S 的参数只是一个字符串?我不确定它是否会起作用,但它可能会。
    猜你喜欢
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多