如何查找并终止 php 循环(进程)?

Hoy*_*man 7 apache-http-server command-line process php api

我有一个我一直在开发的 php 脚本,它在循环中调用外部 api。它正在 Debian 上运行 LAMP 的 VPS 上进行测试。我今天早上注意到 api 没有响应我的脚本。当我打电话给供应商时,他们告诉我我的服务器在过去 10 个小时里每小时调用 api 1000 次。我假设一个 php 脚本(我前一天一直在工作并在我的 VPS 上测试)在其中一次执行过程中进入了一个无限循环,并且从未出现过(我一直在命令提示符下对其进行测试,并且不是通过网络。)我试图停止和启动 Apache,但 api 支持人员说呼叫仍然来自我的服务器地址。我怎样才能找到并停止这个过程?另外,Apache停止/启动是否有可能解决问题,

请原谅我没有正确使用我的本地测试环境。

编辑:我不知道进程名称,我需要根据行为发现名称(或 pid)。

ssn*_*ody 17

由于您手动运行 php 二进制文件,无论是使用 php 还是使用脚本顶部的 php shebang,您都需要找到它的 PID 并杀死它。

您可以使用pkill -9 php或者如果 pkill 不存在,您可以使用它ps -efw | grep php | grep -v grep | awk '{print $2}' | xargs kill来终止所有 php 进程。

此外,如果进程正在与外部 API 建立传出网络连接,这些连接将显示在 netstat 中。

您应该能够向netstat -anop您展示所有连接和控制它们的进程的 PID。找出外部API服务器的IP/主机名,在netstat列表中找到该IP/主机名,杀掉相关的PID。

  • 在某些系统上还有 `killall -9 php` 或 `kill -9 $(pidof php)` (4认同)