Мой вопрос может быть немного сложным.
Это мой сценарий:
Я хочу начать mco-стример, используя php. Мой скрипт php:
<?php
$output = shell_exec("sh /var/www/html/shellstart.sh");
echo "<pre>$output</pre>";
header("Location: ../index.php");
?>
Он отлично работает при запуске скрипта. Проблема в том, что скрипт
shellstart.sh:
LD_LIBRARY_PATH=/opt/mjpg-streamer/mjpg-streamer-experimental/ /opt/mjpg-streamer/mjpg-streamer-experime $
запускает процесс, и функция header() никогда не вызывается, потому что она никогда не покидает скрипт. Поэтому я ищу способ запуска скрипта, его запуск, но возврат к скрипту php и вызов функции header().
Я уже пробовал
trap "exit" SIGINT
а также
nohup LD_LIBRARY_PATH=/opt/mjpg-streamer/mjpg-streamer-experimental/ /opt/mjpg-streamer/mjpg-streamer-experime$
также я попробовал $ disout. Но при использовании nohup или $ disown скрипт даже не начнет процесс.
Я ценю любую помощь! Заранее спасибо.
Вы хотите попробовать что-то вроде:
$pid = exec("sh /var/www/html/shellstart.sh> /dev/null 2>&1 & echo $!; ", $output);
Это запустит скрипт в фоновом режиме и вернет вам PID скрипта.