我正在尝试从php脚本中删除一个进程,但它一直在失败
ps ax | grep 8648
8648 ? Ss 0:15 /usr/bin/php -f /home/whatever/websites/engine/shadow_engine/engine_SHDW_01.php -- --id=SHDW_01
9226 pts/0 S+ 0:00 grep 8648
我的php脚本:
if(isset($_GET['id']) && strlen(trim($_GET['id'])) > 0){
$killCommand = "kill {$_GET['id']}";
exec($killCommand, $killOutput, $killStatus);
if($killStatus === 0){
echo "Process successfully killed";
} else {
echo "Failed to kill process";
}
}
$ killStatus总是返回1而不是0表示exec命令失败,我试过'sudo kill {$ _GET ['id']}'甚至'sudo kill -9 {$ _GET ['id'] }',但它们都不起作用。
编辑:httpd错误日志说'sh:第0行:kill:(1707) - 不允许操作'
答案 0 :(得分:0)
当您在sudo
内尝试exec()
因为您没有提供密码而无法正常工作时。
尝试 使用sudo运行整个脚本:
sudo php -f yourscript.php
在您的脚本中 OR 将sudo密码输入sudo kill {$_GET['id']}
PS:可能仍然需要-9
,我建议您像往常一样从终端首先尝试终止该过程,看看它是否有效。