首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sge获取脚本内的脚本位置

sge获取脚本内的脚本位置
EN

Stack Overflow用户
提问于 2016-06-09 17:26:45
回答 2查看 678关注 0票数 4

我正在编写一个脚本,该脚本将通过sge集群中的qsub运行。

我有几个需要在脚本中调用的可执行文件,它们都在相同的位置(与脚本本身相同)。所以我想知道如何才能得到我正在执行的脚本的位置。我有一个自动构建系统,这只是不正确的硬编码这个位置。代码应该类似于

代码语言:javascript
复制
#!/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/路径

代码语言:javascript
复制
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

/opt/gridengine/default/spool/compute-2-8/job_scripts/9534 : BaseDir 0

SGE_ROOT: /opt/gridengine

/opt/gridengine/default/spool/compute-2-8/active_jobs/9534.1 :SGE_JOB_SPOOL_DIR

主要问题是sge实现将我的脚本复制到job_script中,因此我丢失了对原始脚本的引用。

EN

回答 2

Stack Overflow用户

发布于 2016-06-10 15:59:23

我的猜测是qsub将提交存储在一个单独的目录中,然后从那里运行它。到那时,原始队列条目的路径将丢失。如果需要将其包含在作业的元数据中,则只需将其作为参数传递即可。

通常不能保证提交目录对运行作业的节点可见,因此您尝试的内容可能无法直接实现。

根据平台的不同,您可能必须创建某种类型的自包含包,或者以某种方式在计算节点上引入所需的依赖项,作为作业启动处理的一部分。

票数 0
EN

Stack Overflow用户

发布于 2016-06-10 23:34:34

不是完全优雅,但问题在一个步骤中就解决了。我使用相同的脚本发送qsub工作并为给定的路径设置一个变量

代码语言:javascript
复制
#!/bin/bash  
#  
#$ -S /bin/bash
#$ -V
#$ -cwd
#$ -N "Job"

if [ -z ${var+x} ]; then 
  sPath="`dirname $0`"
  qsub -o console.txt -e error.txt -v var=$sPath $0 >qsub.txt
else
  echo " Set variable: $var"
fi
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37721931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档