start-stop-daemon 尚未检测到 运行 个守护进程
start-stop-daemon doesn't detect already running daemon
我试图复制 /etc/init.d/skeleton 并修改它以在后台启动程序。我想出了以下内容:
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE -b --make-pidfile --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE -b --make-pidfile --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
}
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
我有一个问题和几个问题。我的问题是,无论守护进程是否已经 运行,start 函数都会启动一个守护进程和 returns 0。我的问题是在第一次 --test 启动时是否需要 -b 和 --make-pidfile 。我假设 do_stop 中的第一个命令向守护进程发送 TERM 信号并且第二个命令强行终止守护进程的假设是否正确?在这种情况下,我将不得不等待守护进程退出。
我的问题是 --exec 因为我的脚本是一个解释脚本 start-stop-daemon 找不到这个名字的程序 运行 因为解释器只有 运行。我通过使用 --startas 除了 --exec.
来解决这个问题
我试图复制 /etc/init.d/skeleton 并修改它以在后台启动程序。我想出了以下内容:
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE -b --make-pidfile --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE -b --make-pidfile --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
}
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
我有一个问题和几个问题。我的问题是,无论守护进程是否已经 运行,start 函数都会启动一个守护进程和 returns 0。我的问题是在第一次 --test 启动时是否需要 -b 和 --make-pidfile 。我假设 do_stop 中的第一个命令向守护进程发送 TERM 信号并且第二个命令强行终止守护进程的假设是否正确?在这种情况下,我将不得不等待守护进程退出。
我的问题是 --exec 因为我的脚本是一个解释脚本 start-stop-daemon 找不到这个名字的程序 运行 因为解释器只有 运行。我通过使用 --startas 除了 --exec.
来解决这个问题