Red5 на Debian, выходной PID
Я нащупываю свой путь с этим, как новичок со всеми вещами Linux, поэтому, пожалуйста, будьте терпеливы:)
Я хотел бы вывести идентификатор процесса программы в файл. Из моих чтений это обычно достигается специальной переменной pling, которую поддерживает linux:
make_something_run.sh &
echo $! > /var/run/someting.pid
однако, когда я пытаюсь применить это в моем скрипте запуска для red5, он успешно создает файл pid, но в нем нет идентификатора. Это конкретный скрипт:
start)
echo -n "Starting Red5"
echo -n " "
cd $RED5_HOME
su -s /bin/bash -c "$RED5_HOME/$RED5_PROG.sh &" $RED5_USER
echo "$RED5_HOME/$RED5_PROG.sh &"
## su -s /bin/bash -c "$RED5_HOME/$RED5_PROG.sh > start.log &" $RED5_USER
echo $! > /var/run/red5.pid
wait $!
sleep 2
;;
Я пробовал с и без wait $!
(который, я полагаю, ждет запуска процесса перед записью файла?) безуспешно. Мои единственные другие мысли - сделать что-то необычное с помощью grep и ps aux, чтобы извлечь число, хотя я не знаю, будет ли это надежным подходом.
1 ответ
Вам нужно добавить эхоmake_something_run.sh & echo $! > /var/run/someting.pid
^
http://www.odi.ch/weblog/posting.php?posting=291
РЕДАКТИРОВАТЬ:su -s /bin/bash -c "${RED5_HOME}/${RED5_PROG}.sh & echo \$! > /var/run/red5.pid" $RED5_USER
или же
https://stackoverflow.com/questions/6197165/getting-a-pid-from-a-background-process-run-as-another-user