我想创建一个程序来记录用户启动的所有进程并在启动后进行确认。我不想记录所有系统调用和其他守护进程。我最初已经签出auditctl
并ausearch
签入了auditd
包,acct
但它们非常慢,而且它们提供的信息比我需要的多得多。我想要类似的东西ps
(报告当前进程的快照)。
目前我在 AMD X2 和 Intel 双核处理器上使用 Ubuntu 12.04 LTS。谢谢!
答案1
由于您没有为程序指定编程语言,我建议使用 Python。有多种方法可以找出当前正在运行的进程:
a) 使用子流程模块调用 ps 然后解析其输出。这并不美观,但是可以办到。
b)使用第三方python模块,如psutil或者磅/平方英寸。
c) 由于你使用 Linux,你可以查看 /proc 文件系统:
import os
pids= [pid for pid in os.listdir('/proc') if pid.isdigit()]
for pid in pids:
print open(os.path.join('/proc', pid, 'cmdline'), 'rb').read()