por que o update-rc.d não aceita meu script de inicialização?

0

Eu quero iniciar o cliente noip.com dyndns na inicialização e estou usando o script debian.noip2.sh fornecido (que inicia o cliente a partir do shell). Copiei para /etc/init.d , criei o root e dei 755 de permissões. Agora, quando quero instalá-lo, obtenho:

# update-rc.d debian.noip2.sh defaults
insserv: warning: script 'K01debian.noip2.sh' missing LSB tags and overrides
insserv: warning: script 'debian.noip2.sh' missing LSB tags and overrides
insserv: warning: script 'noip' missing LSB tags and overrides
insserv: script virtualbox: service vboxdrv already provided!
insserv: script virtualbox: service virtualbox already provided!

o script se parece com:

# cat /etc/init.d/debian.noip2.sh 
#! /bin/sh
# /etc/init.d/noip2.sh

# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <[email protected]>
# corrected 1-17-2004 by Alex Docauer <[email protected]>

# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc

DAEMON=/usr/local/bin/noip2
NAME=noip2

test -x $DAEMON || exit 0

case "$1" in
    start)
    echo -n "Starting dynamic address update: "
    start-stop-daemon --start --exec $DAEMON
    echo "noip2."
    ;;
    stop)
    echo -n "Shutting down dynamic address update:"
    start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
    echo "noip2."
    ;;

    restart)
    echo -n "Restarting dynamic address update: "
    start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
    start-stop-daemon --start --exec $DAEMON
    echo "noip2."
    ;;

    *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac
exit 0

Como faço para corrigir isso?

    
por cerr 10.10.2016 / 15:06

2 respostas

4
% bl0ck_qu0te%

Jogue fora completamente. Você não precisa de nenhuma forma.

Em seguida, pare de tentar usar um sistema rc que tenha sido substituído duas vezes no Ubuntu também. Você não precisa de update-rc.d aqui.

Agora é 2016, e a primeira regra para migrar para o systemd se aplica. Alguém já fez isso. Neste caso particular, Michael Nikitochkin fez isso há um ano , entre outros (como Jeroen Doggen , Efstathios Iosifidis , e algumas pessoas sem nome ) :

[Unit]
Description=NOIP Dynamic IP
Documentation=https://askubuntu.com/a/835318/43344

[Service]
ExecStart=/usr/local/bin/noip2

[Install]
WantedBy=multi-user.target

Leitura adicional

por JdeBP 10.10.2016 / 16:30
3

Primeiro, você precisa criar um script de inicialização do systemd:

debian.noip2.service

E coloque-o no diretório /etc/systemd/system/ .

Um exemplo de tal script de inicialização do systemd é o seguinte:

[Unit]
After=network.target

[Service]
ExecStart=/usr/local/bin/debian.noip2.sh

[Install]
WantedBy=default.target

Depois: instrui o systemd quando o script deve ser executado. Em nosso caso, o script será executado após o início da rede.

ExecStart: Este campo fornece um caminho completo para o script a ser executado.

WantedBy: Em qual destino de inicialização a unidade systemd deve ser instalada

Configurar e instalar:

Abra um terminal e execute:

exec sudo -i
cp debian.noip2.sh /usr/local/bin/
chmod 744 /usr/local/bin/debian.noip2.sh
chmod 664 /etc/systemd/system/debian.noip2.service
systemctl daemon-reload
systemctl enable debian.noip2.service

Fonte

    
por kyodake 10.10.2016 / 15:36