Вам нужно добавить эхо
make_something_run.sh & echo $! > /var/run/someting.pid
^
http://www.odi.ch/weblog/posting.php?posting=291
РЕДАКТИРОВАТЬ:
su -s /bin/bash -c "$/$.sh & echo \$! > /var/run/red5.pid" $RED5_USER
или
https://stackoverflow.com/questions/6197165/getting-a-pid-from-a -background-процесс, управляемый-а-другому пользователю
Red5 на Debian, выходной PID
463
milks
Я нащупываю свой путь с этим, как новичок со всеми вещами 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 ответ на вопрос
2
Diblo Dk
спасибо за ответ, я отредактировал пост, чтобы включить пропущенный эхо в моем примере, однако он присутствует ниже в моем посте в скрипте, с которым у меня проблемы, так что не исправление моей проблемы
milks 11 лет назад
0
Можете ли вы попробовать с помощью `su -s / bin / bash -c" $ / $ .sh & "$ RED5_USER`. Я видел, как вы тестировали эхо, но использовать {} нормально, когда вам нужно положить переменную вместе с текстом
Diblo Dk 11 лет назад
0
Вы, должно быть, извините меня, но я немного подзабылся на sh and bash. Но я также вижу, что может быть проблема, вы используете `bash` в` su`. Попробуйте также с `su -s / bin / bash -c" $ / $ .sh & echo $!> /Var/run/red5.pid "$ RED5_USER`
Diblo Dk 11 лет назад
1
Да, это ваша проблема. Http://stackoverflow.com/questions/6197165/getting-a-pid-from-a-background-process-run-as-another-user Я просто вижу, что этот вопрос нужно задавать в stackoverflow.com
Diblo Dk 11 лет назад
0
Это выглядит сложно! Спасибо за ваши старания, посмотрю как у меня получится
milks 11 лет назад
0
@DibloDk: Ваша последняя команда почти верна, изменение на `su -s / bin / bash -c '$ / $ .sh & echo $! > /var/run/red5.pid '$ RED5_USER`. Обратите внимание на одинарные кавычки, в противном случае `$!` Уже раскрывается до выполнения команды и, следовательно, приводит к неверному PID.
mpy 11 лет назад
0
как раз собирался опубликовать подобное, в конце концов я заставил его работать, избежав $! var: `su -s / bin / bash -c" $ / $ .sh> start.log & echo \ $!> /var/run/red5.pid "$ RED5_USER`
milks 11 лет назад
2
Ах да, сри :-)
Diblo Dk 11 лет назад
0
@milks: Я просто хотел исправить свой комментарий: Вы абсолютно правы. Вы _те к этому через escaping_, иначе `$ ` не будет раскрыт ... (я использовал слишком тривиальную команду для тестирования `;)`)
mpy 11 лет назад
0
@DibloDk: Пожалуйста, подумайте над расширением своего ответа, чтобы решение для `su ...` (т.е. исходный вопрос) находилось непосредственно в нем. Затем, более позднему посетителю не нужно будет копаться в комментариях `:)`
mpy 11 лет назад
0
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4