CalledProcessError код состояния выхода 5

1

Я работал с небольшим скриптом python, который выполняет команды bash. Программа работала нормально около месяца. Недавно я попытался запустить скрипт, передав ему эту команду:

my_launcher.py -c /path/to/config/file.json

(BTW, когда команда вводится в терминал, я не вызываю ошибки и работает нормально), и я получаю следующее сообщение:

RuntimeError: Command '['bash', '-c', 'my_launcher.py -c /path/to/config/file.json']' returns non-zero exit status (code5)

Посмотрев на Google, я нашел определения для кодов возврата 0, 1 и 2, но ничего не сделал для кода 5. Подумайте, знает ли кто-нибудь об этом. Что это означает? Как это можно решить? и т.п.

Это код python, который вызывает ошибку:

try :
    #check_output produces byte string
    #raises exception if command returns a non-zero exit status (error occurs during processing of command)
    string_of_text_rc = subprocess.check_output(['bash', '-c', bashCommand])
except subprocess.CalledProcessError as e: 
    raise RuntimeError("Command '{}' returns non-zero exit status (code{})".format(e.cmd, e.returncode))

При удалении try/except, это tceback:

Traceback (most recent call last):
  File "bash_cmd.py", line 27, in <module>
    run_cmd('my_launcher.py -c /path/to/config/file.json')
  File "bash_cmd.py", line 17, in run_cmd
    string_of_text_rc = subprocess.check_output(['bash', '-c', bashCommand])
  File "/usr/lib64/python2.7/subprocess.py", line 575, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['bash', '-c', 'my_launcher.py -c /path/to/config/file.json']' returned non-zero exit status 5

** EDIT: правильный вывод содержится в файле e.output. Это означает, что команда запущена и возвращает правильный результат. Я действительно не знаю, почему я получаю этот код ошибки.

Теги:
runtime-error
subprocess
exit-code

1 ответ

1

Для записи здесь, как вы должны запускать ваш.py файл:

result = subprocess.check_output([
    sys.executable, 'my_launcher.py', '-c', path_to_json])

И вот как вы запускаете команды оболочки:

result = subprocess.check_output(bash_command, shell=True)

Для вашей проблемы - можете ли вы удалить try/except из вашего кода, чтобы мы могли увидеть полную трассировку ошибок? Некоторая хорошая информация может быть скрыта там.

  • 0
    Спасибо @nosklo, я добавил Taceback
  • 0
    @ M.Bris Хорошо, чтобы увидеть, что на самом деле генерирует код возврата 5, нам нужно посмотреть содержимое файла my_launcher.py .
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню