为什么有一个root进程的pid一直在变化?

为什么有一个root进程的pid一直在变化?

在此处输入图片描述

它的 pid 一直在增加... 我正在写一个程序来显示所有进程的信息,这个进程真的让我很烦。哦...
中文是sleeping...,,can't usecan't use

答案1

从技术上讲,并不是单个进程的 pid 发生了变化,而是旧进程终止,而新进程启动。

为什么不尝试找到它的父进程 ID,例如使用ps -o pid,ppid,cmd -U root(它将在第二列中)。可能有一个父进程正在启动所有其他进程。

第一列中没有该进程的名称,这似乎很奇怪。 /proc 目录中可能还有更多线索,例如ls -l /proc/<pid>/execat /proc/<pid>/cmdline。还可以尝试不同的ps命令选项,例如ps -o pid,commps -o pid,args将打印不同的信息。(在这些命令中添加-U root-p <pid>。)


更新

如果该过程没有名称,可能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,那么在调查期间最好将该计算机与互联网断开连接。这样它就无法将您的任何个人数据发送给其他人,也无法发送垃圾邮件或诸如此类的事情。

答案2

我猜想这个进程是某种 rootkit 的一部分。它是故意这样做的,fork旧的进程经常死掉,以便难以被锁定并发送类似SIGSTOPSIGKILL的信号。它没有名字这一事实也表明情况确实如此。

相关内容