Просто делаю небольшую поправку, и один из вопросов:
«Объясните, что подразумевается под 'запросом модификация 'как подход к
# kickoff.py a = subprocess.Popen(['ssh', '-t', 'remote-host', './script.sh', 'a']) b = subprocess.Popen(['ssh', '-t', 'remote-host', './script.sh', 'b']) a.communicate() b.communicate()
В результате
Ctrl-C
не убивает все надежно, и мой терминал всегда впоследствии искажается (мне нужно выполнить «сброс»). Итак, как я могу убить оба удаленных сценария, когда главный из них убит?Примечание: я пытаюсь избежать входа на удаленный хост, ищу 'script.sh' в списке процессов и отправляя SIGINT на оба процесса. Я просто хочу иметь возможность нажать
Ctrl-C
в стартовом скрипте и убить оба удаленных процесса. Менее оптимальное решение может включать детерминированный поиск PID удаленных сценариев, но я не знаю, как это сделать в моей текущей настройке.Обновление: сценарий, который запускается на удаленном сервере, фактически запускается несколько дочерних процессов, и хотя уничтожение
ssh
действительно уничтожает исходный удаленный сценарий (вероятно, b / c SIGHUP), дочерние задачи не уничтожаются.