【问题标题】:Monitor process creation in FreeBSD在 FreeBSD 中监控进程创建
【发布时间】:2016-01-15 02:06:37
【问题描述】:

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

另外,由于我不想进入的原因,我正在这里开发 FreeBSD 4.x 系统,所以我认为我无法访问“auditd”或类似的工具。

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

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

【问题讨论】:

  • 你只需要记录所有执行的命令吗?或者您还需要查看所有流程?
  • @hari 我需要执行所有命令。例如,一个进程可能会启动一些其他进程(例如 perl 或 bash 脚本)。我也需要一份日志。

标签: logging process freebsd process-accounting


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果创建了新进程,检查/proc的修改时间是否改变?


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

    • 调用kvm_getprocs(使用KERN_PROC_PROCop 参数)以获取有关所有正在运行的进程的信息。
    • 跳过您已经知道的所有 PID。
    • 将所有新的 PID 添加到 PID 列表或数组中。使用新流程所需的任何信息。
    • 从您的列表中清除所有已结束的进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多