init.d 脚本:如何使用 start-stop-daemon 停止所有进程树

init.d 脚本:如何使用 start-stop-daemon 停止所有进程树

我制作了一个 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选项应该被删除

相关内容