Answers:
从技术上讲,它不是一个单一的进程,它的pid正在改变,而是旧的进程正在终止,而一个新进程正在开始。
为什么不尝试找到它的父进程id,例如使用ps -o pid,ppid,cmd -U root
(它将在第二列)。可能有一个父进程正在启动所有其他进程。
在第一列中没有该进程的名称似乎很奇怪。例如ls -l /proc/<pid>/exe
,/ proc目录中可能有更多线索cat /proc/<pid>/cmdline
。还可以尝试不同的ps
命令选项,例如ps -o pid,comm
并ps -o pid,args
打印不同的信息。(或者添加-U root
或-p <pid>
到这些命令。)
UPDATE
如果该过程没有名称,也许pgrep '^$'
会列出它,那么你可以用它做任何你喜欢的事情,例如
pgrep '^$' | while read pid; do
ps -f $pid
ls -l /proc/$pid/cmdline
netstat -tlp | grep '\<'$pid'\>'
echo kill $pid # remove the echo after testing
done
如果pgrep '^$'
没有列出任何内容,那么通常ps -o comm= -U root | od -c
可以理解进程名称是什么,因此您可以使用pgrep
仅查找具有该名称的进程。
如果这也失败了,请查看auditctl
。
或者你编写一个运行ps
两次的脚本并杀死只出现在第二次运行输出中的任何进程。
此外,如果它是其他人建议的rootkit,那么在您调查时将该计算机与互联网断开是个好主意。这样,它就无法将您的任何个人数据发送给其他人,也无法发送垃圾邮件或其他类似内容。
pstree
会工作?
我的猜测是这个过程是某种rootkit的一部分。它故意不fork
与旧的以硬牵制和发送信号一样非常频繁死亡SIGSTOP
或SIGKILL
到。它缺少一个名字的事实也指出了这种情况。
fork
调用的方法,这个进程在最后10秒内至少进行了10次fork调用。或者只是拦截所有fork调用并批准它们或拒绝它们的方法。