Como esse script de inicialização pode começar sem sua dependência?

3

Estou trabalhando em alguns scripts de inicialização do lsb. Aqui está a informação do init de um deles:

### BEGIN INIT INFO
# Provides:     myscript
# Required-Start:   networking myotherscript
# Required-Stop:    networking myotherscript
# Default-Start:    2 3 4 5
# Default-Stop:     0 1 6
# Short-Description:    Starts my daemon
### END INIT INFO

E as informações de inicialização do myotherscript

### BEGIN INIT INFO
# Provides:     myotherscript
# Required-Start:   networking
# Required-Stop:    networking
# Default-Start:    2 3 4 5
# Default-Stop:     0 1 6
# Short-Description:    Starts my other daemon
### END INIT INFO

Se eu entendi corretamente, a execução de service myscript start não funcionará, a menos que myotherscript esteja em execução. No entanto, a execução de service myscript start realmente funciona.

Por que eu não recebo, pelo menos, um erro sobre a dependência não atendida?

    
por Cameron Ball 15.08.2014 / 06:33

1 resposta

1

O service comando não faz muito mais do que executar o script de inicialização com o argumento fornecido. Em particular, não cuida das dependências.

No Fedora / RHEL / CentOS e no Debian / Ubuntu / Mint (e provavelmente outros), as dependências registradas nos comentários só são levadas em conta pelo utilitário de gerenciamento de script de serviço chkconfig . Eles não são levados em consideração se você invocar um script diretamente, a ideia é que, se você está fazendo isso, você está intervindo diretamente e quer um bom controle sobre quais serviços você está manipulando (por exemplo, você pode estar executando um localmente versão instalada de uma dependência, ou você pode executá-la em um convidado diferente em um ambiente virtualizado). Isto é compatível com o LSB que especifica apenas o interface entre aplicativos e distribuições, não entre distribuições e administradores.

A falta de suporte embutido para dependências é um dos defeitos do SysVinit, que está sendo gradualmente eliminado em favor do Systemd.

    
por 16.08.2014 / 22:25