我制作了一个 init.d 脚本,该脚本无法正确停止我运行的服务:
start() {
echo "Starting Server"
rm -f $LOGFILE
start-stop-daemon --start --background --chuid $USER:$GROUP --pidfile $PIDFILE --make-pidfile --chdir $PATH --startas /bin/bash -- -c "exec $BIN -f $CONFIG | gawk -E $FILTER > $LOGFILE"
}
stop() {
echo "Stopping Server"
start-stop-daemon --stop --quiet --pidfile $PIDFILE
}
启动服务创建一个进程树并 stop() 仅杀死 shell 而不是主进程 $BIN 我尝试了很多东西,例如制作包装脚本等,但仍然存在同样的问题..我需要使用 PID 因为我想启动服务的多个实例
有人知道正确的方法吗?谢谢
答案1
您的服务应该创建pidfile
守护进程来杀死。该--make-pidfile
选项应该被删除