如何确定谁启动了一个进程?

如何确定谁启动了一个进程?

每隔几分钟我就会发现这个进程正在运行

 root      949062  100  0.0  37204  1488 ?        R<   05:14   0:51 /usr/local/cpanel/3rdparty/bin/clamdscan --quiet --no-summary /etc/passwd

它使用 100% cpu。我杀了它,过了一段时间我又看到它了。
我如何确定谁在运行此进程?

答案1

一种方法是用“包装器”脚本替换该过程。

 # cd /usr/local/cpanel/3rdparty/bin/
 # cp -p clamdscan clamdscan.orig 
 # cat >clamdscan <<eof
 #!/bin/bash 
 echo ==================== >>/tmp/clamscan.log
 date  >>/tmp/clamscan.log
 id    >>/tmp/clamscan.log
 ps -fp $PPID   >>/tmp/clamscan.log
 tty   >>/tmp/clamscan.log
 pstree -Ap >> /tmp/clamscan.log 
 exec $0.orig $*
 eof

这样每次调用 clamscan 都会记录一些信息。这些命令只是为了说明您可以在方便时更改它。当然,如果您不想拥有完整的 /tmp 目录,则不应让它运行太长时间。

要中止,只需执行以下操作:

 # cd /usr/local/cpanel/3rdparty/bin/
 # mv clamdscan.orig clamdscan

相关内容