在php中杀死一个linux进程

时间:2014-05-29 07:06:17

标签: php linux

我正在编写一个用于远程控制某些连接到linux pc的进程和设备的php代码。代码是用python编写的。我可以使用exec()system()这样的php函数来运行脚本和程序,但我不能杀死我的进程。

我想杀死python:

<?php 
$PID = exec("pidof python");
echo $PID;
$kill = "kill " . $PID;
exec($kill);
?>

它返回正确的PID编号,但不会终止进程。 我也试过了exec("kill #PIDnum");,但它不起作用。

有什么建议吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

您只能从系统上运行Web服务器的用户标识所拥有的PHP中删除进程,该用户标识通常设置为低权限帐户,如“nobody”,“www”,“web”等。

如果python是从PHP脚本启动的话,它可以工作。但除此之外,没有。

解决方法是将行附加到PHP中的文件,该文件包含要杀死的PID列表。这不会杀死进程,你需要用bash或perl,python等语言编写一个单独的脚本。让cron以root身份运行该脚本,定期读取文件,并杀死PID。但那时,它不会是瞬间的。你可以设置cron每分钟运行一次这样的脚本。