RedHat daemon function usage

女生的网名这么多〃 提交于 2019-11-29 17:15:40

问题


I'm working on an init script for Jetty on RHEL. Trying to use the daemon function provided by the init library (/etc/rc.d/init.d/functions).

I found this terse documentation, and an online example (I've also been looking at other init scripts on the system for examples).

Look at this snippet from online to start the daemon

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

Why bother looking up the $PID and writing it to the $PIDFILE by hand? I guess I'm wondering what the point of the --pidfile option to the daemon function is.


回答1:


To answer the question you guess that you have, is that --pidfile is used to check whether the daemon process is already running. On RHEL (and derivates) the daemon function won't write the pidfile.

In the case that the program stays in the foreground it has to be explicitly sent to the background by appending & to the command and the pid has to be fetched afterwards. $! is not usable when using daemon.



来源:https://stackoverflow.com/questions/21742227/redhat-daemon-function-usage

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!