启动-停止-守护进程:选项“--exec”需要一个参数

启动-停止-守护进程:选项“--exec”需要一个参数

我不明白这个错误:start-stop-daemon:选项--exec需要一个参数

我对这个世界很陌生init.d,刚刚使用服务调用让我的脚本运行,我只想让这个脚本工作,它在启动时启动,但由于此错误而失败,有什么帮助吗? (即使与我的问题无关,也欢迎任何建议或重写)

这是我的脚本:

#!/bin/bash
# shell script to ...

#set the full path to the programs we need to use
NTOP=/opt/bash_scripts/start-up-superscript &
KILLALL=/usr/bin/killall

case "$1" in
        start)

                   echo "Starting SDD Install..."
                start-stop-daemon --start --quiet --oknodo --exec $NTOP
                ;;
        stop)
                #kill ntop
                echo "Stopping SSD..."
                $KILLALL ntop           
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        status)
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|status}"
                ;;
esac

答案1

我在这里引用了杀掉进程的评论和共享编辑的变化。至于开始,你需要删除&从定义服务的名称开始。

为了识别要停止的进程,由于在启动时添加了解释器,因此使用 PID 很方便。所以你的脚本可以修改为:

#!/bin/bash
# shell script to ...
set -e

#set the full path to the programs we need to use
NTOP=/opt/bash_scripts/start-up-superscript
PIDFILE=/var/run/start-up-superscript.pid
case "$1" in
        start)
            echo "Starting SDD Install..."
            start-stop-daemon --start --quiet --oknodo --exec $NTOP --pidfile $PIDFILE -m
            ;;
        stop)
            #kill ntop
            echo "Stopping SSD..."
            start-stop-daemon --stop --quiet --pidfile $PIDFILE
            ;;
        restart)
            $0 stop
            $0 start
            ;;
        status)
            ;;
        *)
                echo "Usage: $0 {start|stop|restart|status}"
                ;;
esac

这样,整个过程的启动和停止应该按照您的要求进行。

相关内容