$ ps aux | grep file1.py
xyz 6103 0.0 0.1 33476 6480 pts/1 S+ 12:00 0:00 python file1.py
xyz 6188 0.0 0.1 33476 6472 pts/2 S+ 12:05 0:00 python file1.py
xyz 7294 0.0 0.0 8956 872 pts/4 S+ 12:49 0:00 grep --color=auto file1.py
过程6103已经在12:00开始并且在5分钟之后过程6188开始。我需要找出两个过程6103,6188
import psutil
PROCNAME = "file1.py"
process = []
for proc in psutil.process_iter():
if proc.name == PROCNAME:
print proc
但上面的脚本没有打印出来。可以“psutil”模块有其他选项来查找脚本进程的pid。
psutil.test()给出了以下o / p ...
xyz 6103 0.0 0.2 33476 6480 /dev/pts/1 13:23 30:00 python
xyz 6188 0.0 0.2 33476 6480 /dev/pts/2 13:23 30:00 python
xyz 8831 0.0 1.0 430612 39796 ? 13:31 30:03 gedit
xyz 8833 0.0 ? 14540 808 ? 13:31 30:00 gnome-pty-helper
xyz 8835 0.0 0.1 23636 5008 /dev/pts/5 13:31 30:00 bash
xyz 9367 0.0 0.2 51580 7740 /dev/pts/4 13:42 30:00 python
答案 0 :(得分:1)
如果您不担心 os.popen()
,那么这样的事情呢?#!/usr/bin/python
import os
PROCNAME = "file1.py"
pids = []
for proc_data in os.popen('/bin/ps -eo pid,comm,args'):
bits = proc_data.strip().split()
(pid, comm ) = bits[0:2]
args = " ".join( bits[3:] )
if args == PROCNAME:
pids.append( pid )
print pids
这可以让你找到基于过程的args的东西。
如果需要,您可以更改它以使comm和args成为一个字符串。
pid = bits[0]
comm_and_args = " ".join( bits[1:] )
答案 1 :(得分:0)
请阅读pidof
:
man pidof