- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写要在 sge 集群中通过 qsub 运行的脚本。
我有几个需要在脚本中调用的可执行文件,它们都位于同一位置(与脚本本身相同)。所以我想知道如何获取正在执行的脚本的位置。我有一个自动构建系统,硬编码这个位置是不对的。代码应该是这样的
#!/bin/bash
#$ -S /bin/bash
#$ -V
#$ -cwd
#$ -N "Job"
exec="/path/to/this/script/"execNameJob
$exec
我尝试了一些东西,但它们没有用,人们被标记为重复。以前的解决方案均无效。我正在运行我的脚本qsub -o console.out/tmp/qsubScript/qsubScript.sh。我要获取的是脚本中的/tmp/qsubScript/路径
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
echo " Directory SOURCE: $DIR"
echo " BaseDir 0: " $0
echo " SGE_ROOT: $SGE_ROOT"
echo " SGE_JOB_SPOOL_DIR: $SGE_JOB_SPOOL_DIR"
输出是:
目录来源:/opt/gridengine/default/spool/compute-2-8/job_scripts
BaseDir 0:/opt/gridengine/default/spool/compute-2-8/job_scripts/9534
SGE_ROOT:/opt/gridengine
SGE_JOB_SPOOL_DIR:/opt/gridengine/default/spool/compute-2-8/active_jobs/9534.1
主要问题是 sge 实现将我的脚本复制到 job_script 中,因此我丢失了对原始脚本的引用。
最佳答案
我的猜测是 qsub
将提交存储在一个单独的目录中,然后从那里运行它。到那时,原始队列条目的路径将丢失。如果您需要将其包含在作业的元数据中,您只需将其作为参数传递即可。
通常不保证提交目录对运行作业的节点可见,因此您尝试的操作可能无法直接实现。
根据平台的不同,您可能必须创建某种独立的 bundle ,或者以某种方式在计算节点上引入您需要的依赖项,作为作业启动处理的一部分。
关于bash - sge 获取脚本中的脚本位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37721931/
我尝试将我的程序与集群一起使用。现在,我创建一些小作业,并使用 bash 脚本将其提交到特定节点。这些作业将一个大文件复制到节点,对该文件执行 5 个其他程序,最后作业将文件复制回来并在节点上删除它。
我正在编写要在 sge 集群中通过 qsub 运行的脚本。 我有几个需要在脚本中调用的可执行文件,它们都位于同一位置(与脚本本身相同)。所以我想知道如何获取正在执行的脚本的位置。我有一个自动构建系统,
我正在我们的 beowulf 集群上运行 SGE (6.2u5p2)。我有几个用户提交了数十个或数千个低优先级的短期(<15 分钟)作业(即,他们将作业设置为低优先级,以便任何人都可以跳到它们之前)。
首先,“环境”这个词有不同的含义,所以让我澄清一下我的意思。 我正在 Linux 上开发 Python 流程,并且有某些库、软件元素和文件等(例如 yaml)是运行此流程和识别自定义命令所必需的。当我
我在简化一系列 SGE 网格作业时遇到了难题,这些作业之间有一定的依赖性,但还没有找到指定 -hold_jid 的正确方法。 假设我们有这样的工作: job1: qsub -N job1 ... jo
我想更改正在运行的 SGE 实例上的槽数。该实例由 StarCluster 启动。 我试着按照这个 page并运行: ubuntu@master: $ qconf -mattr exechost co
我目前编写了一个 R 脚本来执行种群遗传模拟,然后将包含我的结果的表格写入文本文件。我想以某种方式使用数组作业并行运行此脚本的多个实例(我大学的集群使用 SGE),当它全部完成后,我将生成对应于每个作
我知道,可以通过 qmod -sj [jobid] 命令暂停正在运行的作业,原则上是可行的。这意味着作业进入暂停状态——到目前为止还不错,但是: 我希望如果我将所有正在运行的作业置于暂停状态并将新的作
最近,我可以在集群上运行我的代码。我的代码是完全可并行化的,但我不知道如何最好地利用它的并行特性。我必须计算一个大矩阵的元素,它们中的每一个都独立于其他矩阵。我想提交作业以在多台机器(如 100 台)
在 SGE 中提交作业时如何请求节点数(不是 procs)? 例如在 TORQUE 中,我们可以指定 qsub -l nodes=3 如何在 SGE 中按名称请求节点? 例如在 TORQUE 中,我们
如何从 SGE 获取(最近)失败的作业列表(failed=100 或 exit_status=137)?来自 qacct 帮助: [-j [job_id|job_name|pattern]] l
如何从 SGE 获取(最近)失败的作业列表(failed=100 或 exit_status=137)?来自 qacct 帮助: [-j [job_id|job_name|pattern]] l
我有一个用 python 编写的管道调用 Java 中的一些进程。管道以两种可能的模式运行,在本地模式(在单个节点上)或在 SGE 集群上。 当我将选项设置为集群模式时,日志中的错误消息是这样的 In
我想通过 sge 文件提交 sge 作业。 例如,我有如下run.sge文件: ## SGE options #$ -cwd #$ -l mem_free=2G ##$ -q all.q@comput
我使用的是sun grid engine 6.2u5版本。要求是当我在完成作业时使用 qsub 命令提交作业时我想运行一些脚本(bash 脚本)。 我如何使用 -notify 选项或任何其他方式来跟踪
我想向我正在使用的集群网络提交一个多线程作业 -但是关于 qsub 的手册页并不清楚这是如何完成的——默认情况下,我猜它只是将它作为一个正常的作业发送,而不管多线程——但这可能会导致问题,即将许多多线
这可能是个很简单的问题,但是如果我有job ID,我如何获取通过SGE提交的job的状态呢?我基本上想检查作业 ID,看看它是处于错误状态、仍在运行还是已完成。 我在想这样的事情 qstat -u '
我正在尝试运行在群集(SGE)中使用sqlite3的脚本。 该脚本使用lockfile创建一个锁,填充数据库并释放该锁。 $cat test.sh #!/bin/sh lockfile /
我正在处理 SGE 集群,但在使用 qsub 电子邮件通知系统时遇到了一些问题。我的所有工作都运行良好,但我似乎无法修改默认行为以仅在中止工作时通知。 -M 标志工作正常,当作业中止时我会收到一封电子
我有一个问题希望你帮我解决。 我正在使用 Python 工作,我想要执行以下操作: 在服务器上调用 SGE 批处理脚本 看看它是否正常工作 做某事 我现在所做的大约如下: import sub
我是一名优秀的程序员,十分优秀!