O script Init.d não está funcionando na inicialização: falha ao iniciar o SYSV

1

O sistema Keystone CMS não é executado na inicialização. O problema é provável neste script de inicialização init.d . Eu defino as permissões, mas algo ainda não está certo.

$ sudo systemctl daemon-reload
$ sudo service keystone start
Job for keystone.service failed. See 'systemctl status keystone.service' and 'journalctl -xn' for details.
$ sudo service keystone status
● keystone.service - SYSV: Keystone server daemon
   Loaded: loaded (/etc/init.d/keystone)
   Active: failed (Result: exit-code) since Thu 2016-10-13 07:39:12 UTC; 16s ago
  Process: 2785 ExecStart=/etc/init.d/keystone start (code=exited, status=203/EXEC)
 Main PID: 2698 (code=exited, status=216/GROUP)

Oct 13 07:39:12 test-vm systemd[2785]: Failed at step EXEC spawning /etc/init.d/keystone: Exec format error
Oct 13 07:39:12 test-vm systemd[1]: keystone.service: control process exited, code=exited status=203
Oct 13 07:39:12 test-vm systemd[1]: Failed to start SYSV: Keystone server daemon.
Oct 13 07:39:12 test-vm systemd[1]: Unit keystone.service entered failed state.

Poderia ser o script em si, que foi criado a partir de um modelo . Eu também estava pensando em vinculá-lo a um dos diretórios /etc/rc?.d .

Estou usando o Debian 8.6

/etc/init.d/keystone :

Subsystem file for "Keystone" server
#
# chkconfig: 2345 95 05
# description: Keystone server daemon

RETVAL=0
prog="keystone"

start() {       
        echo -n $"Starting $prog:"

        cd /home/user/keystone
        /opt/bitnami/nodejs/bin/node  /home/user/keystone/keystone.js

        RETVAL=$?
        [ "$RETVAL" = 0 ] && touch /var/lock/subsys/$prog
        echo
}

stop() {        
        echo -n $"Stopping $prog:"

        killproc $prog -TERM
        RETVAL=$?
        [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/$prog
        echo
}

reload() {
        echo -n $"Reloading $prog:"
        killproc $prog -HUP
        RETVAL=$?
        echo
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        restart)
                stop
                start
                ;;
        reload)
                reload
                ;;
        condrestart)
                if [ -f /var/lock/subsys/$prog ] ; then
                        stop
                        # avoid race
                        sleep 3
                        start
                fi
                ;;
        status)
                status $prog
                RETVAL=$?
                ;;
        *)
                echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
                RETVAL=1
esac
exit $RETVAL
    
por Peter Gerhat 12.10.2016 / 17:55

1 resposta

2

Process: 2785 ExecStart=/etc/init.d/keystone start (code=exited, status=203/EXEC)
…
Oct 13 07:39:12 test-vm systemd[2785]: Failed at step EXEC spawning /etc/init.d/keystone: Exec format error

… o que é totalmente correto. Seu arquivo não é um script executável. Não tem um intérprete. Também não está na forma correta que é prescrita para os antigos scripts Smoorenburg rc da Debian Policy, daí o " SYSV: " (em vez de " LSB: ") que o systemd prefixou em sua descrição.

Mas também é um desperdício de tempo consertar isso. Jogue fora. Escreva uma unidade de serviço systemd.

[Unit]
Description=Keystone CMS
Documentation=http://unix.stackexchange.com/a/316168/5132

[Service]
WorkingDirectory=/home/user/keystone
ExecStart=/opt/bitnami/nodejs/bin/node /home/user/keystone/keystone.js

[Install]
WantedBy=multi-user.target

Leitura adicional

por 13.10.2016 / 14:02