“find”命令已经查找mysqli.so 9.729小时

“find”命令已经查找mysqli.so 9.729小时

我已经在这个网站和其他许多网站上搜索过,但我有一个进程一直以 100% 的 CPU 运行了 9,729 个小时。根据 htop,这是我的 Debian Jessie Web 服务器上由“root”运行的命令:

find ./ -name mysqli.so -print

我无法弄清楚是什么原因导致该命令运行,并且向其 PID 发出“kill -9”没有任何效果。

其余一切似乎都按预期运行——我甚至没有意识到这个问题已经持续了这么久,这证明了这一点。但是,由于它一直占用着整个 CPU 核心,所以我想解决这个问题。

我唯一没有尝试过的事情是重新启动服务器——这是不切实际的,因为这是一个生产服务器。

答案1

首先,尝试发送它SIGSTOP以实际停止其执行(这可能会被命令捕获和忽略,但值得尝试)。

接下来,这看起来很可疑。由于任何进程都可以自由更改进程列表中显示的文本(某些程序(如 MTA)出于合法目的一直这样做),因此可能可能是你的机器被黑了,并且进程实际上不是find别的而是别的东西(比如加密矿工)。

有几种方法可以尝试检查它的真正含义。

  1. 尝试查看它是什么可执行文件:

     # stat /proc/$pid/exe
    

    应该向您显示该进程中正在运行的二进制可执行文件。

  2. 观察该进程的文件系统活动可能会有所帮助:

    # watch vdir /proc/$pid/fd
    

    如果它确实表现为打开和关闭大量文件,那么它很可能真的find

  3. 该进程一定不能打开任何套接字(可在同一层次/proc/$pid/fd结构中查看)。

  4. 你可以strace看看它是否确实反复打开和关闭目录 - 运行

    # strace -p $pid
    

    并监视opendir系统调用fdopendir

  5. 查看debsums

相关内容