Запустите скрипт оболочки с помощью php и выйдите из него, не останавливая процесс

1

Мой вопрос может быть немного сложным.

Это мой сценарий:

Я хочу начать 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 скрипт даже не начнет процесс.

Я ценю любую помощь! Заранее спасибо.

Теги:

1 ответ

2
Лучший ответ

Вы хотите попробовать что-то вроде:

$pid = exec("sh /var/www/html/shellstart.sh> /dev/null 2>&1 & echo $!; ", $output); 

Это запустит скрипт в фоновом режиме и вернет вам PID скрипта.

  • 0
    Это работает как шарм! Я буду исследовать, как это работает. Большое спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню