Tôi đang cố gắng viết init
cấu hình sẽ chuyển hướng đầu ra của trình nền của tôi sang hai tệp (cho thiết bị xuất chuẩn và thiết bị xuất chuẩn). Vấn đề là, nó không hoạt động. Tôi đang đọc cái này ngay bây giờ.
Vì vậy, tôi đã thực hiện kịch bản shell này để kiểm tra phương pháp này. Và nó không hoạt động:
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
Nhưng nếu bạn bắt đầu điều này mà không bọc daemon trong vỏ riêng biệt, nó sẽ hoạt động như dự định (chỉ không có chuyển hướng stderr / stdout):
start-stop-daemon -Sbmv --pidfile $PIDFILE --chdir ${DAEMON_DIR} --exec $DAEMON -- ${DAEMON_ARGS}
Câu hỏi là: tại sao tập lệnh đầu tiên không hoạt động? Hệ thống là Debian Lenny, start-stop-daemon
phiên bản là 1.14,29