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

이렇게 하면 전체 프로세스가 요구 사항에 따라 시작되고 중지됩니다.

관련 정보