Я использую MULTIPROCESSING, чтобы найти свое требование. И когда это работает, я получаю pid (может быть, родитель! Я не знаю, как это назвать), тогда co обрабатывает свой собственный pid и ссылочный идентификатор первого процесса.процесс уничтожения и его суб/совместные процессы путем получения их родительского pid скриптом python
Теперь мне нужно убить все эти процессы, ТОЛЬКО УБИВАЯ ПЕРВОГО ПРОЦЕССА, и тогда это будет лучший способ сделать это. ЧТО ТАКОЕ ПИТОНИЧЕСКИЙ ПУТЬ.
Сценарий похож
ps -ef |grep py
я получаю
2222 0001 first.py #0001 is os process
4323 2222 second.py
4324 2222 third.cgi
4324 2222 fourth.py
4325 2222 fifth.cgi
4326 2222 sixth.py
2223 0001 newfirst.py ############new first process from another script started
4327 2223 newsecond.cgi
4328 2223 newthird.py
4329 2223 newfourth.cgi
теперь я процесс глушения (при нажатии кнопки останова)
kill -6 2222 ###from terminal
только тогда first.py погибает, а оставшиеся совместные процессы все еще работают. Конечно, я могу убить другие процессы из терминала, но я хочу сделать это более питоническим способом (запустив скрипт, который будет запускаться, когда кто-то нажал кнопку формы кнопки STOP, предназначенную для запуска .py-файлов)
Теперь как я могу убить все эти совместные процессы, как только я убью first.py (так как я не хочу, чтобы его колл запускался больше), но другие newfirst.py и его co не должны беспокоиться.
что я придумал, чтобы это далеко
import os
pid = os.getpid()
os.system('kill -9 ' + pid)
так как отфильтровать сопутствующие процессы из этого первого идентификатора процесса 2222 и убить их.
Я также пробовал использовать psutil, но прохождение имени после имени для убийства не очень убедительно.
Я проверил метод subprocess.popen, но не смог и теперь я вышел из логики, пожалуйста, предложите.
Если какая-либо другая информация необходима, сделайте комментарий.
Чтобы убить группу процессов с сигналом 'os.killpg (pgid, sig)', можно использовать. В вашем случае 'os.killpg (pid, 9)' – Kadir