擅长:python、mysql、java
<p>对于posix(Linux、BSD等)。。。只需要挂载/proc目录)在/proc中使用操作系统文件更容易。
它的纯python,不需要在外部调用shell程序。</p>
<p>在Python2和3上工作(唯一的区别(2to 3)是异常树,因此是“<em>except i on</em>”,我不喜欢它,但为了保持兼容性。也可以创建自定义异常。)</p>
<pre><code>#!/usr/bin/env python
import os
import sys
for dirname in os.listdir('/proc'):
if dirname == 'curproc':
continue
try:
with open('/proc/{}/cmdline'.format(dirname), mode='rb') as fd:
content = fd.read().decode().split('\x00')
except Exception:
continue
for i in sys.argv[1:]:
if i in content[0]:
print('{0:<12} : {1}'.format(dirname, ' '.join(content)))
</code></pre>
<p>示例输出(其工作方式类似于pgrep):</p>
<pre><code>phoemur ~/python $ ./pgrep.py bash
1487 : -bash
1779 : /bin/bash
</code></pre>