Как я могу открыть процесс в python с конкретным pid. Я имею в виду, что хочу установить PID процесса.
Изменить:
Я хочу определить PID процесса, с которым я работал (например, используя метод Popen
класса subprocess
)
Как я могу открыть процесс в python с конкретным pid. Я имею в виду, что хочу установить PID процесса.
Изменить:
Я хочу определить PID процесса, с которым я работал (например, используя метод Popen
класса subprocess
)
PID задаются ОС, вы не можете использовать конкретный PID для своего подпроцесса.
Чтобы определить PID подпроцесса, вы можете запросить его у подпроцесса:
import subprocess
dateProc = subprocess.Popen([ 'date' ])
print dateProc.pid
Если вы имели в виду, что хотите узнать PID текущего процесса, используйте os.getpid()
.
Если требуется знать идентификатор процесса процесса (например, firefox), для меня работает следующий код (в Linux env). Перед запуском кода необходимо установить модуль psutil в файл env. А чтобы установить psutil, используйте команду «easy_install psutil».
#!/usr/bin/python
import psutil
process = filter(lambda p: p.name == "firefox", psutil.process_iter())
for i in process:
print i.name,i.pid
Чтобы получить PID (например) процесса 'pythoh', вам нужно как минимум две строки кода:
import subprocess
pid = int(subprocess.Popen(['pgrep','python'],stdout=subprocess.PIPE).stdout.readline()[:-1])
Добавьте предложение try-except, если есть вероятность, что ни один процесс с таким именем не запущен.
Если есть много процессов 'python', повторяйте строки чтения до тех пор, пока не будет возвращен ''.
Вам также может понадобиться sudo apt-get install pgrep.
НЕ невозможно УСТАНОВИТЬ PID ==> Изменение идентификатора процесса в Linux
os.getpid()
.
- person Alfe; 28.03.2013