Вот мой сценарий: я пытаюсь автоматизировать некоторые задачи с помощью Paramiko. Задачи нужно запускать в следующем порядке (используя обозначения (хост, задача)): (A, 1), (B, 2), (C, 2), (A, 3), (B, 3) - - по сути, запуск серверов и клиентов для некоторого тестирования в правильном порядке. Кроме того, поскольку в тестах работа сети может быть испорчена, а поскольку мне нужны некоторые результаты тестов, я бы хотел просто перенаправить вывод в файл.
В аналогичных сценариях общий ответ - использовать screen -m -d или nohup. Однако с exec_cmd от Paramiko nohup фактически не завершается. Использование:
bash -c -l nohup test_cmd &
тоже не работает, exec_cmd все еще блокирует до конца процесса.
В случае экрана перенаправление вывода работает не очень хорошо, (на самом деле, работает не во всем лучшем, что я могу выяснить).
Итак, после всего этого объяснения у меня возникает вопрос: есть ли простой элегантный способ отсоединить процессы и захватить вывод таким образом, чтобы положить конец блокировке exec_cmd в Paramiko?
Обновление
Команда dtach прекрасно работает для этого!