Python, как завершить подпроцесс при закрытии терминала?

У меня есть сценарий, который запускает другой сценарий script2.py как подпроцессы. Но когда я закрываю терминал, script2.py все еще остается запущенным. Как завершить подпроцесс при закрытии терминала (консоли).

Вот как я запускаю подпроцесс:

p = subprocess.Popen(command,
                        stdout=subprocess.PIPE,
                        stderr=subprocess.STDOUT,
                        shell=True)
    command_output = iter(p.stdout.readline, b'')

И я обычно закрываю его так: os.killpg(os.getpgid(p.pid), signal.SIGTERM), но как завершить все подпроцессы, просто закрыв консоль (терминал)?


person passwd    schedule 19.09.2016    source источник
comment
Как часть команды для запуска script2.py, отправьте console / script1.py pid, В script2.py запустите поток, чтобы проверить, существует ли pid script1, как только pid будет потерян, выйдите / закройте script2   -  person be_good_do_good    schedule 19.09.2016
comment
Возможный дубликат Обеспечение остановки подпроцессов при выходе из программы Python   -  person albert    schedule 19.09.2016
comment
Также возможен дубликат Как завершить подпроцесс python, запущенный с помощью shell = True   -  person mgarey    schedule 19.09.2016