【发布时间】:2016-03-03 23:22:45
【问题描述】:
我目前正在使用/etc/init.d 中的skeleton 在我的计算机启动时启动一个守护进程。我需要守护进程来运行三个实例。在我的骨架中,我已将 start 函数中的代码更改为:
cd dir1 ; start-stop-daemon -b --start --quiet --pidfile ${PIDFILE}1 --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2 ;
cd dir2 ; start-stop-daemon -b --start --quiet --pidfile ${PIDFILE}2 --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2 ;
cd dir3 ; start-stop-daemon -b --start --quiet --pidfile ${PIDFILE}3 --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2 ;
因为我的 DAEMON 变量指向我控制的二进制文件,所以我毫无疑问地知道每个实例至少运行一段时间。但是当系统最终启动时,我只能看到一个正在运行的进程实例。我还查看了 start-stop-daemon 的手册页,如果指定了 --pidfile,它不应该杀死已经运行的实例。我也在使用-b,并且我已经测试了我的守护程序脚本,我直接使用run.sh start 执行它。之后,我可以看到三个进程按预期运行。
如何让所有三个实例都留下?
【问题讨论】: