簡體   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