Я использую python 3.6 через VSCode в WSL Ubuntu. Мой код неоднократно вызывает функцию f()
ниже:
def do_nothing(folder):
print("I'm process", os.getpid())
logfile = os.path.join(folder, 'stdout.out')
def f():
folders = [str(i) for i in range(8)]
with multiprocessing.get_context("spawn").Pool() as pool:
pool.map(do_nothing, folders)
Это создает много процессов zomb ie со следующей сигнатурой, которые переживают вызывающую программу:
PID TTY TIME CMD
2710 ? 00:00:00 at-spi2-registr
PIDs эти процессы не соответствуют идентификаторам PID ни одного из процессов пула. Цифры очень близки.
Есть ли способ, которым я могу избежать этого? Я подозреваю, что переключение на fork может решить проблему, но причина, по которой я использую get_context("spawn")
, заключается в том, что с fork VSCode выдает ошибку для каждого разветвленного процесса, говоря, что он не может отладить, и это неработоспособное решение.