Запускать команды оболочки с PHP? - PullRequest
0 голосов
/ 28 августа 2010

Иногда мой медиасервер выключается, и мне интересно, возможно ли запустить его удаленно, используя php для проверки порта, и если он не запущен, вызовите cron (или каким-либо другим способом) для запуска команды оболочки. Это возможно, потому что это не сильная область для меня. Вот процесс, который я использую с PuTTy.

  1. войти в оболочку
  2. cd to source / red5 / dist
  3. экран
  4. . / Red5.sh
  5. CTRL-A, затем D для отсоединения
  6. Выход

Ответы [ 6 ]

2 голосов
/ 28 августа 2010

Простой способ добиться того, чего вы хотите - запустить его на экране:

while /bin/true ; do ./red5.sh ; done
2 голосов
/ 28 августа 2010

Самое простое - написать скрипт оболочки. А затем войдите в удаленную консоль через PHP .

  • shell_exec : выполнить команду оболочки и вернуть вывод в виде строки.
  • exec : просто выполняет внешнюю программу
1 голос
/ 28 августа 2010

PHP на самом деле имеет специальный оператор для выполнения команд оболочки, обратная связь :

`cd source/red5/dist`

перейдет в указанную директорию.(Но я не очень разбираюсь в shell, поэтому я не могу реализовать вас целиком.)

Если вам нужен большой контроль над выполнением (я не знаю, нужен ли вам здесь), используйте proc_open .

1 голос
/ 28 августа 2010

Если вы можете написать сценарий оболочки, который делает то, что вам нужно, то в PHP есть exec(), system() и passthru() для вас.

0 голосов
/ 03 сентября 2010

Здесь есть несколько хороших ответов, но вы должны выбрать выполнение сценария инициализации для red5 вместо .sh или .bat. Здесь есть готовые скрипты инициализации: http://code.google.com/p/bigbluebutton/downloads/detail?name=red5&can=2&q= и здесь: http://www.videowhisper.com/forum.php?ftid=48&t=init-file-red5-linux-installations-red5-linux-init.d-chkconfig

0 голосов
/ 28 августа 2010

Вы можете использовать задание кукурузы на php, поместить все команды в файл .sh и выполнить так*

как-то так, будет сохранено

...