У меня есть скрипт на python, который ждет некоторых заданий и выполняет их в потоках (используя subprocess.Popen
с shell=True
).Когда я запускаю скрипт в оболочке и пытаюсь завершить его с помощью Ctrl-C
, он нормально и чисто закрывается.
Проблема в том, что я хочу запустить этот скрипт как демон, а затем завершить его, используя какой-то видUnix сигнал.Сигнал INT
должен совпадать с сигналом Ctrl-C
, но он не работает таким же образом.Это оставляет дочерние процессы subproces.popen
запущенными.
Я также пытался поднять KeyboardInterupt
в главном потоке, когда получаю сигнал, но также не удается закрыть сценарий и завершить все дочерние процессы.
Любые предложения по эмуляции Ctrl-C
?
Пример вызова subprocess.popen
:
shell_cmd = "bwa aln -t 8 file1.fasta file1.fastq.gz > file1.sam.sai"
process = subprocess.Popen(shell_cmd,
shell=True,
stderr=subprocess.PIPE)