Запуск bash-скрипта из php-скрипта - PullRequest
0 голосов
/ 29 марта 2011

Я пытаюсь запустить скрипт bash, используя shell_exec, но, похоже, он не работает.(Кажется, ничего не происходит) Я использую nginx и последнюю версию php5-cgi.Вот как выглядит php-файл:

<?php

$startserver = "./startserver.sh";
$startserver = shell_exec($startserver);
$getprocess = "pidof hlds_amd";
$pid = shell_exec($getprocess);

$fh = fopen('closeserver.sh', 'w');
$command = "kill -9 $pid";
fwrite($fh, $command);
fclose($fh);


$string = "at -f closeserver.sh now + 1 hour";
$closer = shell_exec($string);  


?>

и вот как выглядит bash-скрипт:

#!/bin/bash
cd /home/kraffs/srcds
./hlds_run -game cstrike -autoupdate +maxplayers 12 +map de_dust2 > hlds.log 2>&1 &

В phpscript ошибок нет, и файл создается просто отлично, но$ startserver не выполняется, а $ pid пуст.Я что-то пропустил в php-файле или мне нужно изменить права доступа для пользователя?Спасибо за вашу помощь.

1 Ответ

1 голос
/ 29 марта 2011

замените shell_exec на приведенную ниже функцию и попробуйте снова

<?php
function runcmd($EXEC_CMD)

    $handle = popen ($EXEC_CMD, 'r');
    $output = "";
    if ($handle) {
        while(! feof ($handle)) {
            $read = fgets ($handle);
            $output .= $read;
        } 
        pclose($handle);
    }
    return $output;
}  
?>
...