Script de inicialização com cabeçalhos LSB não funcionando corretamente (problema de dependência)?

1

Estou criando um script de inicialização para o meu servidor LTS Ubuntu 14.04.1. O script precisa ser executado após o servidor Rabbit MQ. O script de inicialização do Rabbit MQ diz que ele fornece "rabbitmq-server". Então eu coloquei esta string na lista "Required-Start" dos meus cabeçalhos de script de inicialização (veja abaixo). No entanto, depois de instalar meu script com update-rc, tanto o script Rabbit MQ quanto meu script estão no nível "S20", ou seja, não acho que a dependência funcionou. Meu script também não está iniciando corretamente, mas inicia se eu o executar manualmente após o boot. Alguma idéia do que poderia estar errado?


    ### BEGIN INIT INFO
    # Provides: amqp_receive
    # Required-Start: $local_fs $network rabbitmq-server
    # Required-Stop:
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Script to provide start/stop/status of the amqp_receive program
    ### END INIT INFO


    lrwxrwxrwx 1 root root  22 Aug 17 00:29 S20amqp-receive -> ../init.d/amqp-receive
    lrwxrwxrwx 1 root root  25 Aug 13 18:14 S20rabbitmq-server -> ../init.d/rabbitmq-server
    lrwxrwxrwx 1 root root  15 Apr 16 18:26 S20rsync -> ../init.d/rsync
    lrwxrwxrwx 1 root root  24 Apr 16 18:26 S20screen-cleanup -> ../init.d/screen-cleanup
    lrwxrwxrwx 1 root root  23 Apr 16 18:26 S38open-vm-tools -> ../init.d/open-vm-tools
    lrwxrwxrwx 1 root root  26 Apr 16 18:26 S45landscape-client -> ../init.d/landscape-client
    lrwxrwxrwx 1 root root  19 Apr 16 18:26 S70dns-clean -> ../init.d/dns-clean
    lrwxrwxrwx 1 root root  18 Apr 16 18:26 S70pppd-dns -> ../init.d/pppd-dns
    lrwxrwxrwx 1 root root  21 Apr 16 18:26 S99grub-common -> ../init.d/grub-common
    lrwxrwxrwx 1 root root  18 Apr 16 18:25 S99ondemand -> ../init.d/ondemand
    lrwxrwxrwx 1 root root  18 Apr 16 18:25 S99rc.local -> ../init.d/rc.local

    
por Virgil 17.08.2014 / 04:07

1 resposta

0

O problema é que os scripts são executados em ordem alfabética (como você afirmou acima, o problema é que ambos começam com S20 ) - então S20amqp-receive é executado antes de S20rabbitmq-server . Estou com você, algo deu errado ao executar update-rc.d . Talvez apenas execute update-rc.d amqp-receive defaults novamente.

Outra solução poderia ser renomear (manualmente) S20amqp-receive para S21amqp-receive . Então este script será executado depois dos que começam com S20 .

Observação: seria melhor tentar corrigir as dependências.

    
por 29.11.2014 / 15:34