基于Python的Linux进程

要在我的Linux(Debia Box)上运行许多HTTP进程
我用
PS -EF | grep" [h] ttpd" | WC -L
但是,如果我想从我的
Python程序我必须使用popen命令,例如
popen2.popen3('ps -ef | grep" [h] ttpd" | wc -l')
那就是我必须调用Python的外部命令.
但这会产生僵尸.
所以我的问题是:
是否可以在Linux上获得许多HTTP流程
直接来自Python?
感谢帮助.
L.

# 回答1


约翰·施里布(Johny Schrieb):
外壳做完全相同的事情.顺便说一下:我想你想念一个
grep -v grep
在第一个Grep之后 - 否则您会计算GREP本身.
尝试使用子过程模块.它不需要您打电话等待
你自己.
不是真的,或者至少没有努力,也没有复制
系统工具功能.
diez
# 回答2


约翰写道:
Python Core没有直接的API.但是您可以使用
该作业的虚拟 / PROC /文件系统.或查看我的枚举
包裹. http://pypi.python.org/pypi?:action=...ss&version=0.1
它远非完美,但应该在Linux上完成工作.
克里斯蒂安
# 回答3


在阳光下,2008年8月31日23:25:56 -0700(PDT),约翰尼写道:
...
是的.有许多第三方软件包提供
这样的功能,包括PSI:http://www.psychofx.com/psi/
我从来没有真正喜欢它们,因为它们正在解析 /proc目录
通过他们自己.因此,我写了自己的工具,该工具是周围的包装器
procps库(可能在您 /lib中的libproc*).您的系统工具
像PS一样,W或TOP都使用此库.我的包装库是
可在以下网址找到:http://code.google.com/p/procpy/
在您的情况下,您可以这样使用:
....如果pp.procs [pid] ['cmd'] =='apache2':
....打印pp.procs [pid] ['tid']
...
5204
5205
5206
5208
它打印系统上所有apache2进程的PID.
procpy可以满足我自己的需求,但是如果我要写
一个旨在便携式的代码,我会使用psi.也是
更成熟.
- -
问候,
wojtek walczak,http://tosh.pl/gminick/
# 回答4


2008年9月1日星期一,上午08:40:42 AM +0200,Diez B. Roggisch写道:
[...]
确实不是.围绕" H"的支架(这使其成为角色
班级,如果您愿意的话)防止将正则匹配.
- -
Derek D. Martin http://www.pizzashack.org/
GPG密钥ID:0x81CFE75D
-----开始PGP签名-------------
版本:gnupg v1.2.1(gnu/linux)
ID8DBQFIVK1YDJDLQOHP510RAMDHAJ4YXECKKE3ZOD+EIKYBHT VIK+R/WACEOVIQ
efrlkejgzx3w9kgnwvnap5a =
= 9zfi
-----结束PGP签名-----

标签: python

添加新评论