【发布时间】:2014-04-07 13:49:32
【问题描述】:
我正在尝试使用 python 脚本在 unix 集群上运行一系列 oommf 模拟,但我在将命令从 python 发送到 bash 时卡住了。我正在使用这条线:-
subprocess.check_call('qsub shellfile.sh')
返回退出代码 191。退出代码 191 是什么,我似乎无法在网上找到它。这可能是 PBS 错误而不是 unix 错误,但我不确定。错误似乎不在 shell 文件本身,因为那里仅有的命令:-
#!/bin/bash
# 这是 hello world 程序的示例提交脚本。
# PBS PRO 的选项 =========================================== =====================
#PBS -l walltime=1:00:00
# 这指定作业应运行不超过 24 小时
#PBS -l select=1:ncpus=8:mem=2048mb
# 这指定作业需要 1 个“块”、1 个 CPU 内核和 2048 MB RAM(内存)。
#PBS -joe
#这会将错误合并输出到一个文件中,而不是制作两个文件
##PBS -o $working_folder/$PBS_JOBID-oommf_log
# 这会将你的输出发送到文件“hello_output”而不是标准文件名
# PBS PRO 的选项 =========================================== =====================
#PBS -P HPCA-000987-EFR
#PBS -M ppxsb3@nottingham.ac.uk
#PBS -m abe
# 这里我们只是使用 Unix 命令来运行我们的程序 echo "在
hostname上运行"睡20
echo "现在完成的工作""
应该只打印主机名和 'Finished job now'
谢谢
【问题讨论】:
-
所以你要执行的命令是''?
-
假设您对
subprocess的调用实际上是正确的(您发布的内容会给您一个PythonOSError),这取决于脚本的实现。错误代码因实现而异。 -
返回码的含义是由执行的命令定义的,不是
check_call。 -
对不起,我不明白。我试过直接在shell中输入命令,但它只是返回'qsub:作业被所有可能的目的地拒绝'我知道这是我在unix中尝试做的一个问题,但我认为我正在使用check_call 获取退出代码告诉我出了什么问题,这是我无法解决的问题。
-
那么错误 191 可能是您从交互式调用中获得的错误消息的数字错误代码。如果没有关于
qsub的更多信息,我们也无法知道。哪个供应商和版本?它有手册页吗?在线?
标签: python bash shell unix exit-code