查看 /etc/init.d/ 中的各种守护程序脚本时,我似乎无法理解“lockfile”变量的用途。似乎在启动守护程序之前没有检查“lockfile”变量。
例如,/etc/init.d/ntpd 中的一些代码:
prog=ntpd
lockfile=/var/lock/subsys/$prog
start() {
[ "$EUID" != "0" ] && exit 4
[ "$NETWORKING" = "no" ] && exit 1
[ -x /usr/sbin/ntpd ] || exit 5
[ -f /etc/sysconfig/ntpd ] || exit 6
. /etc/sysconfig/ntpd
# Start daemons.
echo -n $"Starting $prog: "
daemon $prog $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $lockfile
return $RETVAL
}
'lockfile' 变量在做什么?
另外,当我用 C++ 编写自己的守护进程时(例如按照http://www.itp.uzh.ch/~dpotter/howto/daemonize底部的示例),我是否将编译后的二进制文件直接放在 /etc/ init.d/ 或者我在那里放置一个调用二进制文件的脚本。(即用对我的二进制文件的调用替换上面代码中的'daemon $prog'?)