#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 делает автоматически. Есть ли способ заставить его работать без питания?