Есть ли способ получить только pid процесса с его именем с целью его приостановки на определенное время? - PullRequest
0 голосов
/ 20 мая 2019

Мне нужно получить pid программы, чтобы временно приостановить ее.Как я могу получить pid программы, использующей python, только с именем пользователя, чтобы использовать этот pid вместе с psutil для приостановки процесса?Давайте сейчас просто назовем это process.exe.

  1. Я пробовал использовать item for item вместе с psuti.Тем не менее, это дает мне дополнительный текст вместе с pid, и я не уверен, как удалить этот ненужный текст.
  2. Я пытался использовать os.getpid, но это дает мне pid Python, а не процесс, который я хочуполучить pid.

1.

import psutil
pid = [item for item in psutil.process_iter() if item.name() == 'process.exe']
print(pid)

2.

import os
pid = os.getpid()
print(pid)

Для (1) я хочу, чтобы результат был просто

pid=x

Однако сейчас это:

[psutil.Process(pid=x, name='process.exe', started='14:11:40')]

1 Ответ

0 голосов
/ 24 мая 2019

В 1 вы получаете объект процесса, который содержит всю информацию о процессе, вы можете использовать объект процесса для получения pid:

pid[0].pid

Во 2-м,

os.getpid ()

возвращает идентификатор процесса интерпретатора python и практически не используется в интерпретаторе python, используйте его только при запуске какого-либо сценария python для получения идентификатора процесса.

...