Как узнать время жизни процесса с Python? - PullRequest
1 голос
/ 09 мая 2019

Сценарий: у меня открыто несколько браузеров Firefox.В какой-то момент я запускаю свой скрипт, чтобы завершить все процессы Firefox, которые были запущены более 30 минут.

Я делаю это в Windows.Можно ли получить время жизни от процесса?

PROCNAME = "firefox.exe"

# Shuts down all PROCNAME processes
for proc in psutil.process_iter():
    if proc.name() == PROCNAME:
        proc.kill()

Ответы [ 2 ]

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

psutil - это действительно отличный модуль для получения информации обо всех системных процессах, а это кроссплатформенный .

psutil не предоставляет информацию о том, как долго выполнялся процесс, однако он предоставляет время создания процесса, поэтому время выполнения процесса можно легко определить.

import psutil
import time
PROCNAME = "firefox.exe"
for proc in psutil.process_iter():
      if proc.name() == PROCNAME:
        etime = time.time() - proc.create_time()
        print(etime)
        if(etime > 1800): #30mintues or more running time
          proc.kill()
0 голосов
/ 09 мая 2019

Я просто использовал psutil в качестве Amandan , предложенного выше. Я использовал PROCNAME "Google Chrome", так как это браузер, который я использую, и я смог получить время создания процесса, используя метод ниже.

Я предполагаю, что вы можете вычесть текущее время из времени создания процесса, чтобы получить время, когда браузер работал.

import psutil
import datetime

PROCNAME = "Google Chrome"

for proc in psutil.process_iter():
    if proc.name() == PROCNAME:
        p = psutil.Process(proc.ppid())
        print(f"Creation time of {PROCNAME} process: ", datetime.datetime.fromtimestamp(p.create_time()).strftime("%Y-%m-%d %H:%M:%S"))

Выход: enter image description here

...