Python — проверьте, работает ли родительский процесс без psutil

#python #process #psutil

Вопрос:

Я недавно обновился до Python 3.10, и теперь psutil больше не будет устанавливаться (думаю, он еще не совместим). Я использую psutil в своей программе, чтобы проверить, мертв ли родительский процесс, а также для уничтожения текущего процесса (потому что я использую несколько потоков, а simple sys.exit() убивает только текущий поток).

 psutil.Process(os.getpid()).kill() psutil.Process(os.getpid()).parent() is None  

Чтобы убить текущий процесс без питания, я могу использовать:

 os.kill(os.getpid(), signal.SIGTERM)  

Но я, похоже, не могу найти замену второй строке. Приведенное ниже решение не работает, так как os.kill(pid, 0) также убивает процесс, если он запущен, что нежелательно.

 try:  os.kill(pid, 0) except OSError:  print("pid is unassigned") else:  print("pid is in use")  

PID родительского процесса можно получить с помощью os.getppid() , но это не отслеживает, был ли этот PID повторно использован другим процессом, что psutil делает автоматически. Есть ли способ заставить его работать без питания?