我正在尝试编写init
配置,它将我的守护程序的输出重定向到两个文件(用于stdout和stderr)。问题是,它不起作用。我正在读这本书。
因此,我已经完成了该Shell脚本来测试这种方法。而且它不起作用:
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Seed kurokikaze starter"
#NAME=node
DAEMON="/etc/node-version/0.1.99/bin/node"
DAEMON_ARGS="/etc/seed/kurokikaze/server.js"
DAEMON_DIR="/etc/seed/kurokikaze"
APPLOG_FILE="/var/log/seed/kurokikaze"
ERRLOG_FILE="/var/log/seed/kurokikaze-err"
PIDFILE="/var/run/seeds/kurokikaze.pid"
SCRIPTNAME="/etc/seed-init/kurokikaze"
NCMD="exec $DAEMON $DAEMON_ARGS 1>>$APPLOG_FILE 2>>$ERRLOG_FILE"
start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir ${DAEMON_DIR} --exec $DAEMON --startas /bin/sh -- $NCMD
但是,如果您在不将守护程序包装在单独的外壳程序中的情况下启动此程序,它将按预期工作(只是没有stderr / stdout重定向):
start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir ${DAEMON_DIR} --exec $DAEMON -- ${DAEMON_ARGS}
问题是:为什么第一个脚本不起作用?系统是Debian Lenny,start-stop-daemon
版本是1.14.29