start-stop-daemon: '--exec' オプションには引数が必要です。

start-stop-daemon: '--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

これにより、プロセス全体が要件に従って開始および停止されます。

関連情報