start-stop-daemon: a opção '--exec' requer um argumento

0

Eu não entendo este erro: start-stop-daemon: a opção --exec requer um argumento

Sou muito novo no mundo init.d e acabei de fazer meu script usar chamadas de serviço, só quero que esse script funcione, ele inicia na inicialização, mas falhou por causa desse erro, alguma ajuda? (quaisquer sugestões ou reescritas são bem-vindas, mesmo que não estejam relacionadas ao meu problema)

Aqui está o meu script:

#!/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
    
por TheHidden 07.12.2015 / 11:13

1 resposta

1

Cito aqui as alterações nos comentários e na edição compartilhada do processo de kill. Quanto ao início, você precisa remover o & da definição do nome do serviço a ser iniciado.

Para identificar o processo para parar, já que no lançamento é adicionado o intérprete, é conveniente usar um PID. Então, seu script pode ser modificado como:

#!/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

Desta forma, todo o processo de iniciar e parar deve funcionar como você quer.

    
por 07.12.2015 / 12:44

Tags