PHP Exec, чтобы убить процесс Linux не работает

Я пытаюсь убить процесс из сценария 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

Решение

Когда вы пытаетесь sudo внутри вашего exec() это не работает, потому что вы не предоставляете пароль.
Пробовать или запустить весь скрипт с помощью sudo:

sudo php -f yourscript.php

ИЛИ ЖЕ внутри вашего скрипта передать пароль sudo в sudo kill {$_GET['id']}

PS: -9 может все еще понадобиться, я бы посоветовал попытаться сначала убить процесс с вашего терминала, как обычно, и посмотреть, будет ли он работать.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]