簡體   English   中英

根據psutil Python運行了多長時間來終止進程

[英]Killing a process based on how long it as been running with psutil Python

我正在運行許多名為“ csm.py”的進程。 每個進程都有一個命令行參數,例如“ testarg”。

“ csm.py testarg”。

我正在使用psutil成功檢查是否有另一個同名進程(“ csm.py testarg”)與此代碼一起運行:

for process in psutil.process_iter():
        cmdline = process.cmdline
        if result[0][2] in cmdline:
            proc += 1
        if proc >= 2:
            # DO SOMETHING

我想做的是找出是否已經運行了一個名為“ csm.py testarg”的進程,並且該進程早於1小時,如果它被殺死,但是不殺死正在檢查的新進程(該進程)對於舊的“ csm.py testarg”。 是否可以使用psutil獲取進程的開始時間/日期?

謝謝

我設法弄清楚了是這樣的:

for process in psutil.process_iter():
    pid = process.pid
    cmdline = process.cmdline
    if what_im_looking_for in cmdline:
        p = psutil.Process(pid)
        p.create_time
        pidcreated = datetime.datetime.fromtimestamp(p.create_time)
        allowed_time = pidcreated + datetime.timedelta( 0, 5400 )
        now = datetime.datetime.now()
        if now > allowed_time:
            print "Killing process {} Start time: {} Current time: {}".format( pid, pidcreated, now)
            p.kill()
>>> import os, psutil, datetime
>>> p = psutil.Process(os.getpid())
>>> p.create_time()
1307289803.47
>>> datetime.datetime.fromtimestamp(p.create_time()).strftime("%Y-%m-%d %H:%M:%S")
'2011-03-05 18:03:52'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM