Я пытаюсь выполнить следующие две команды в python один за другим.Выполнять подпроцесс последовательно в python
runmqsc <Queuem manager name>
Display QL (<queue name>)
Я могу выполнить команду rumqsc, используя подпроцесс.
subprocess.call("runmqsc <queue manager name>", shell= True)
Теперь эти команды, похоже, берут управление из python. Если я попытаюсь выполнить следующую команду, используя подпроцесс, она не работает должным образом. Я даже не уверен, как выполнить второй (для которого я должен передать аргумент).
Добавление фрагмента кода:
subprocess.call("runmqsc Qmgrname", shell= True)
subprocess.call("DISPLAY QL(<quename>)",shell=True)
Теперь первая строка выполняет хорошо и как было упомянуто tdelaney в комментариях runmqsc ожидает ввода от стандартного ввода. А после выполнения первой строки программа зависает, даже не выполняя вторую строку.
Любая помощь или ссылки на любой из связанных документов помогут. Благодаря
Можете ли вы сделать это в командной строке? – tdelaney
Runmqsc принимает команды от stdin. Если вы не перенаправляете stdin на канал или вручную вводите команды при запуске программы, он будет зависать и вызов не вернется. Можете ли вы опубликовать небольшой сценарий, показывающий, как вы используете команду, чтобы мы могли предложить исправления? – tdelaney
@tdelaney: Да, я могу запускать команды в командной строке (я имею в виду не использовать подпроцесс). Я пытаюсь выполнить команды сразу один за другим.Пожалуйста, найдите отредактированный вопрос (обновили вопрос с помощью фрагмента кода). Спасибо – Phoenix