如何使用 php 中的 pid 杀死 Linux 进程


How to kill a linux process using pid from php?

我面临着一个关于从我的php代码中杀死Linux进程的问题。我正在使用后台的 proc_open() 函数从我的 php 代码运行 Scrapy 工具。

它工作正常,但现在我想使用其进程 ID 杀死此进程。为此,我正在使用exec("sudo kill -9 $pid");其中$pid是我从 php 代码中获取的进程 ID。

问题是这个过程是代表 apache 用户运行的。我认为可能存在一些权限问题,所以我像这样将 apache 用户添加到 sudoers 文件中apache ALL=(ALL) NOPASSWD:ALL但我仍然无法杀死它。不知何故,相同的 kill 命令适用于我的腻子控制台。

我的代码位于 Amazon EC2 实例上。

我的问题是,我怎样才能杀死由 php 中的 pid 识别的进程?

永远不要给 apache sudo权限!

使用exec("kill -9 $pid"); - 您的 apache 进程启动了它,它可以杀死它:)

尝试posix_kill

bool posix_kill ( int $pid , int $sig )

使用过程标识符 pid 将信号信号信号发送到过程。

您可以将 exec 与 sudo 权限一起使用,以获得更安全的技能 查看使用 php 在 Linux 中杀死用户进程

谢谢和问候,
阿洛克·塞克