Подтвердить что ты не робот

Использование функции демона 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.

4b9b3361

Ответ 1

Чтобы ответить на вопрос, который у вас есть, это то, что --pidfile используется для проверки того, что процесс демона уже запущен. В RHEL (и производных) функция daemon не будет писать pidfile.

В случае, если программа остается на переднем плане, она должна быть явно отправлена ​​на задний план, добавив & к команде, после чего pid должен быть извлечен. $! неприменим при использовании daemon.