在FreeBSD中监视进程创建

时间:2013-01-11 00:44:38

标签: logging process freebsd process-accounting

我希望监视在FreeBSD系统上执行的所有命令。我已经查看了在BSD中使用进程记帐功能的lastcomm。不幸的是,它只存储每个执行命令的前十个字符。理想情况下,我希望整个命令包括CLI参数。

另外,由于我不想进入的原因,我在这里开发FreeBSD 4.x系统,所以我不认为我可以访问“auditd”或这样的设施。

/ proc包含我需要的所有信息,但我无法找到监控procfs以创建和删除新节点的好方法。

编辑:感谢您的输入。不幸的是dtrace不是一个选项,因为我提到这些是FreeBSD 4.x系统。接下来 - 我确实看了/ proc中的修改时间。只是kqueue没有具体说明修改了哪个文件。

2 个答案:

答案 0 :(得分:1)

检查创建新进程时/proc的修改时间是否会发生变化?


或者,运行循环执行以下操作。您需要一个列表或数组来存储PID。

  • 致电kvm_getprocs(使用op KERN_PROC_PROC参数)获取有关所有正在运行的流程的信息。
  • 跳过您已经了解的所有PID。
  • 将所有新PID添加到PID列表或数组中。使用新流程中需要的任何信息。
  • 清除列表中已结束的所有进程。

答案 1 :(得分:1)

探索dtrace设施。我认为,它具有您需要的功能,但您应该知道,记录您希望记录的所有内容可能会使系统速度降低很多。