繁体   English   中英

macOS 使用 kevents 监控新的分叉进程

[英]macOS Monitor new forked processes using kevents

我正在尝试通过使用launchd pid 监视EVFILT_PROC来监视所有使用 Kevents 新创建的进程,该 pid 为 1:

struct kevent ke = { 0 };
const pid_t pid_of_launchd = 1;
EV_SET(&ke, pid_of_launchd, EVFILT_PROC, EV_ENABLE | EV_ADD | EV_CLEAR, NOTE_FORK | NOTE_EXEC, 0, NULL);

当我无法检索新进程 PID 或名称创建新进程时,我确实收到事件:

struct kevent change = { 0 };
int next_event = kevent(kq, NULL, 0, &change, 1, NULL);
// change.ident always equal 1

有没有人遇到过这个?

谢谢!

ident 是事件的 ID(序列号)。 您应该检查过滤器特定数据(a uint64_t)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM