5

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

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

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

我的代码在 Amazon EC2 实例上。

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

4

3 回答 3

24

永远,永远,给 apachesudo权限!

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

于 2013-10-08T06:18:06.850 回答
7

尝试posix_kill

bool posix_kill ( int $pid , int $sig )

将信号 sig 发送到进程标识符为 pid 的进程。

于 2016-06-01T18:34:33.657 回答
0

您可以使用具有 sudo 权限的 exec 来获得更安全的技能 使用 php 查看linux 中的 kill users processes

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

于 2013-10-08T05:51:56.060 回答