如何在Linux下用c语言创建守护进程并监控系统运行期间的所有进程?

发布于 2022-08-25 01:10:52 字数 163 浏览 25 评论 0

要求记录的信息包括:进程pid,可执行程序名称,用户名,创建时间,撤销时间。

老师布置的一道作业题。自己google过了,也上数据库搜了别人的论文看,但是他们都只讲了怎么创建守护进程。
给点提示就好,我再自行解决。谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

说谎友 2022-09-01 01:10:52

方法1. 使用inotify实时监控/proc下面的文件变动即可(有可能进程启动、结束太快来不及读取文件内容从而没捕捉到必要信息)
方法2. 使用ptrace监控所有进程的fork/clone/vfork/execve/exit/exit_group等系统调用(对系统性能影响太大)
方法3. 写内核模块,hook一些关键的地方。想简单一些的话可以定时过task_struct的链表(从init_task开始)。

原谅过去的我 2022-09-01 01:10:52

/proc里面提供有关系统中进程的详细信息....

金兰素衣 2022-09-01 01:10:52

systemtap 可以很容易的做到,不过它要用到内核调试信息以及内核的调试支持。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文