Upstart: definindo dependências / prioridades de serviço

1

Estou trabalhando em um aplicativo que executa vários serviços / daemons usando upstart. Estes devem iniciar na inicialização do sistema, mas somente depois que o servidor de banco de dados (no nosso caso mongo) foi iniciado. Eu estou procurando a configuração inicial certa para fazer com que um serviço faça com que o mongo seja iniciado quando é iniciado ou inicie somente após o início do mongo.

Eu não quero modificar nenhuma configuração inicial que não faça parte do nosso próprio software (por exemplo, modificar a configuração do upstart do mongo).

Uma direção foi adicionar ao nosso código algo como:

start on started mongod and runlevel [2345] 

Ou algo similar, mas acho que isso não é exatamente o que eu quero: quero que o "mongo started" seja um requisito para nossos serviços, não quero que ele acione meus scripts. Por exemplo. Eu não quero que, se alguém parar manualmente nossos serviços e reiniciar o mongo, por exemplo, nossos scripts iniciem sem querer também.

Alguma sugestão?

    
por shevron 23.01.2013 / 09:36

1 resposta

1

No início do script de inicialização, há um INIT INFO block:

### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

As primeiras três linhas são onde você tem que mudar para fazer o que você quer fazer. Provides indica qual serviço seu script está sendo veiculado. Required-Start é onde você colocará as dependências, como mongod no seu caso e, se este for o caso, em Required-Stop você irá configurar os serviços que devem ser parados antes de você parar o serviço.

    
por 23.01.2013 / 13:05