Повернуть Процесс В Окне с PHP
Я использую S. Linux ubuntu и работает мой сайт на сервере Apache. Через PHP я пытаюсь сделать, - запустить исполняемый файл, который находится в каталоге указываю, но хочу, чтобы этот процесс поверните в фоновом режиме и в некоторые окна, чтобы он храниться.
я Пробовал различные команды exec
system
shell_exec
и в то время, так, что я делаю неправильно?
$startOT = "";
if ( isset($_GET['Server']) ) {
$startOT = trim($_GET['Server']);
}
if ($startOT == "Start") {
if (substr_count(shell_exec('sudo pstree'),'tfs') >= 1) {
echo 'Server is executing';
}
else {
$startCommand = 'cd /var/www/html/datapacks/baiak860/ && sudo screen && sudo ./tfs';
$out = shell_exec($startCommand);
echo $out;
echo "Server has been started!";
}
}
1 answers
Я Не знаю, что вы хотите запустить, но я собираюсь сообщить вам кое-какие предложения, терминалы, gnu/linux, вы можете использовать > /dev/null &
(или > /dev/null 2>&1 &
) а надо выполнить команду background, это заставляет PHP не ждать команды:
exec($startedCommand . ' > /dev/null &');
exec($startedCommand . ' > /dev/null 2>&1 &');
, Если хотите, чтобы открыть новое окно терминала можно попробовать так:
exec('xterm -e "' . $startedCommand . '"');
, Если это провести процесс php попробуйте в сочетании с предыдущих команд:
exec('xterm -e "' . $startedCommand . '" > /dev/null &');
, Если у вас есть поддержка инструментов Gnome (Unity и xfce, я считаю, что у вас), можно попробовать так:
exec('gnome-terminal -e "' . $startedCommand . '"');
, Если это провести процесс php попробуйте в сочетании с предыдущих команд:
exec('gnome-terminal -e "' . $startedCommand . '" > /dev/null &');
, Возможно, могут возникнуть некоторые проблемы при передаче параметра -e
, так что вы можете попробовать использовать escapeshellarg
, а не
$startedCommand = escapeshellarg($startedCommand);
exec('xterm -e "' . $startedCommand . '" > /dev/null &');
$startedCommand = escapeshellarg($startedCommand);
exec('gnome-terminal -e "' . $startedCommand . '" > /dev/null &');