我的系统后台正在运行一个未知的 PHP 脚本,我无法找到它,而且每次我杀死它时它都会重新生成。
来自 ps 的有关该过程的一些信息。
ps -Flww -p 280378
F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD
0 R root 280378 4725 99 80 0 - 6487 - 19328 2 15:47 ? 00:01:10 /usr/bin/php /var/www/bin/update-payments.php
/var/www/bin/update-payments.php
不存在,那里甚至没有/var/www/bin
目录。我不记得曾经用这个名字创建过 php 文件。
我如何才能找到这个过程的起源并停止它?
答案1
由于 PHP 需要 Web 服务器才能运行,因此您可以停止 Web 服务器以终止 PHP 进程。不过,在执行此操作之前,您可能需要检查正在运行的服务,看看是否有任何可疑之处:
systemctl list-units --all --type=service --no-pager
这将为您提供 100 多项服务的列表。查看哪些服务处于活动状态以及它们的作用。如果您不认识某项特定服务,请通过搜索引擎运行它以查看返回的内容。
如果您找不到任何可疑的东西,请关闭 Web 服务器并查看您的/var/log/
和/var/log/apache
目录,看看是否有任何东西抱怨 Web 服务器已经消失。
停止 Apache:
sudo service apache2 stop
停止 nginx:
sudo service nginx stop
希望这能帮助您追踪错误的过程。
答案2
这不是一个答案,但是我还没有足够的声誉来发表评论。
您的 /usr/bin/php 文件大小是否正确?它可能已被破坏并被有缺陷或恶意的文件替换?
您是否尝试过将 /usr/bin/php 文件重命名为其他名称,以查看该进程是否仍可启动?