【问题标题】:Exit code 191 when running a python script to run a shell file运行 python 脚本运行 shell 文件时退出代码 191
【发布时间】: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 的更多信息,我们也无法知道。哪个供应商和版本?它有手册页吗?在线?

标签: python bash shell unix exit-code


【解决方案1】:

退出代码 191 表示与作业关联的项目代码无效。这是第 13 行的代码:-

#PBS -P HPCA-000974-EFG

这告诉集群代码与哪个项目相关联。

【讨论】:

    猜你喜欢
    • 2010-12-16
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    相关资源
    最近更新 更多