我正在寻找一种在Linux中获取短子进程的PID的方法。从人类的角度来看,这个过程是即时的。我知道将生成子进程的父进程。
有没有一种方法可以记录有关由特定父进程创建的所有进程的信息?
我不是在寻找一种方法来追溯找出孩子的PID,而是一种一旦发生就将其记录下来的方法。
您可以使用审核系统:
sudo auditctl -a exit,always -S execve -F ppid="$pid"
会导致每次审核的子项$pid
执行命令时都会生成审核条目。audit.log
会有这样的事情:
type=SYSCALL msg=audit(1373986729.977:377): arch=c000003e syscall=59 success=yes exit=0 a0=7ff000e4b188 a1=7ff000e4b1b0 a2=7fff928d47e8 a3=7fff928caac0 items=2 ppid=7502 pid=691 auid=10031 uid=10031 gid=10031 euid=10031 suid=10031 fsuid=10031 egid=10031 sgid=10031 fsgid=10031 ses=1 tty=pts5 comm="echo" exe="/bin/echo" key=(null)
type=EXECVE msg=audit(1373986729.977:377): argc=2 a0="/bin/echo" a1="test"
type=CWD msg=audit(1373986729.977:377): cwd="/tmp"
type=PATH msg=audit(1373986729.977:377): item=0 name="/bin/echo" inode=131750 dev=fe:00 mode=0100755 ouid=0 ogid=0 rdev=00:00
在这里您可以找到pid
其他东西。
如果您对不一定执行某些操作的流程感兴趣,则可以为fork
和clone
系统调用添加审核规则。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句