RedHat守护程序函数用法



我正在RHEL上为Jetty编写一个init脚本。正在尝试使用init库(/etc/rc.d/init.d/functions)提供的daemon函数。

我找到了这个简洁的文档和一个在线示例(我也一直在查看系统上的其他init脚本以获取示例)。

在线查看此片段以启动守护程序

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函数的意义是什么

要回答您猜测的问题,--pidfile用于检查守护进程是否已经在运行。在RHEL(及其衍生物)上,daemon函数不会写入pidfile。

在程序停留在前台的情况下,必须通过将&附加到命令来明确地将其发送到后台,然后必须提取pid。当使用daemon时,$!不可用。

相关内容

  • 没有找到相关文章

最新更新