Использование функции демона RedHat
Я работаю над init script для Jetty на RHEL. Попытка использовать функцию daemon
, предоставленную библиотекой init (/etc/rc.d/init.d/functions
).
Я нашел эту краткую документацию и онлайн-пример (я также смотрел на другую сценарии инициализации в системе для примеров).
Посмотрите на этот фрагмент из Интернета, чтобы запустить демон.
daemon --user="$DAEMON_USER" --pidfile="$PIDFILE" "$DAEMON $DAEMON_ARGS &"
RETVAL=$?
pid=`ps -A | grep $NAME | cut -d" " -f2`
pid=`echo $pid | cut -d" " -f2`
if [ -n "$pid" ]; then
echo $pid > "$PIDFILE"
fi
Зачем беспокоиться о поиске $PID
и записывать его в $PIDFILE
вручную? Думаю, мне интересно, какая точка опции --pidfile
для функции daemon
.
Ответы
Ответ 1
Чтобы ответить на вопрос, который у вас есть, это то, что --pidfile
используется для проверки того, что процесс демона уже запущен. В RHEL (и производных) функция daemon
не будет писать pidfile.
В случае, если программа остается на переднем плане, она должна быть явно отправлена на задний план, добавив &
к команде, после чего pid должен быть извлечен. $!
неприменим при использовании daemon
.