systemtap跟踪进程生命周期

systemtap man: https://sourceware.org/systemtap/man/
本来追踪进程生命周期可以用syscall.fork和syscall.exit之类的。但是有时候它们会失效(或者部分失效)。
所以更好的方式是用kprocess系列,文档:https://sourceware.org/systemtap/man/tapset::kprocess.3stap.html
kprocess.create的上下文应该是刚刚fork成功的父进程。
kprocess.start的上下文应该是刚刚被fork出来的子进程。
kprocess.exec的上下文是exec的调用者,此时execname仍然是原来的。
kprocess.exec_complete的上下文是exec执行完毕,此时execname已经改变了。
kprocess.exit的上下文是exit的调用者。
kprocess.release的上下文文档里这么说的:

The context of the parent, if it wanted notification of this process' termination, else the context of the process itself.  
posted @ 2024-09-28 14:16  寻找繁星  阅读(5)  评论(0编辑  收藏  举报