运行 python 脚本运行 shell 文件时退出代码 191
Posted
技术标签:
【中文标题】运行 python 脚本运行 shell 文件时退出代码 191【英文标题】:Exit code 191 when running a python script to run a shell file 【发布时间】: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
的调用实际上是正确的(您发布的内容会给您一个Python OSError
),这取决于脚本的实现。错误代码因实现而异。
返回码的含义是由执行的命令定义的,不是check_call
。
对不起,我不明白。我试过直接在shell中输入命令,但它只是返回'qsub:作业被所有可能的目的地拒绝'我知道这是我在unix中尝试做的一个问题,但我认为我正在使用check_call 获取退出代码告诉我出了什么问题,这是我无法解决的问题。
那么错误 191 可能是您从交互式调用中获得的错误消息的数字错误代码。如果没有关于qsub
的更多信息,我们也无法知道。哪个供应商和版本?它有手册页吗?在线?
【参考方案1】:
退出代码 191 表示与作业关联的项目代码无效。这是第 13 行的代码:-
#PBS -P HPCA-000974-EFG
这告诉集群代码与哪个项目相关联。
【讨论】:
以上是关于运行 python 脚本运行 shell 文件时退出代码 191的主要内容,如果未能解决你的问题,请参考以下文章
从 shell 脚本运行 python 文件时出现 ModuleNotFoundError 错误
关于Python的py文件在Python自带的shell编辑器中运行成功,用cmd打开运行却出错 在cmd下运行结果
azkaban怎么在job里面直接调用python脚本啊,我调用shell脚本正常运行,调用python脚本没有运行