Как запустить процесс в фоновом режиме из скрипта Python и избежать зомб ie? - PullRequest
0 голосов
/ 30 марта 2020

В приведенном ниже коде из скрипта Python я создаю другой скрипт Python.

Я хочу запустить «test_bin» в фоновом режиме и не хочу ждать вызова или общаться, чтобы получить статус выхода. Если я не использовал wait / общаться, "test_bin" становится несуществующим (zomb ie) после завершения.

Есть ли какой-нибудь способ, которым мы можем избежать бездействия без ожидания / общения?

import subprocess

test_bin = "/usr/local/bin/test_code.py" # Took 5-10 min to complete
proc_handle = subprocess.Popen( (test_bin, shell=True)
:
:
proc_handle.wait() # don't want to do this.

1 Ответ

0 голосов
/ 30 марта 2020

В Unix -подобных системах достаточно игнорировать SIGCHLD, чтобы дочерние процессы никогда не становились зомби. Так что вы могли бы сделать:

import subprocess
import signal

test_bin = "/usr/local/bin/test_code.py" # Took 5-10 min to complete
signal.signal(signal.SIGCHLD, signal.SIG_IGN)
proc_handle = subprocess.Popen( (test_bin, shell=True)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...