Ordem de serviços usando os serviços systemd e legacy init.d

1

No meu sistema Fedora 23, um banco de dados é iniciado pelo systemd. Outro serviço (hive-metastore) que depende desse banco de dados é iniciado por meio de um script init.d. Não estou claro sobre qual seria a maneira correta de fazer esses serviços iniciarem na ordem correta (banco de dados antes do hive-megastore).

    
por cstotzer 23.02.2016 / 09:12

1 resposta

1

É bem provável que a melhor solução seja simplesmente escrever uma unidade systemd para o serviço hive-metastore - desde que tenha o mesmo nome systemd irá usá-la de preferência ao script init e provavelmente será muito mais fácil para ler e muito mais confiável.

Você pode controlar a ordem sem isso, adicionando Before=hive-metastore.service à unidade de serviço do banco de dados. Isso é feito melhor usando um fragmento dropin, então crie algo como /etc/systemd/system/database-name.service.d/hive-metastore.conf com este conteúdo:

[Unit]
Before=hive-metastore.service

Não é bem o que você faria se ambos fossem unidades systemd nativas, pois nesse caso você provavelmente adicionaria a configuração ao outro serviço e usaria os dois After para controlar a ordem e Requires para garantir o banco de dados é iniciado, mas a ordenação sozinha é suficiente se ambos os serviços estiverem ativados e a ordenação puder ser controlada a partir de qualquer um dos extremos da dependência.

    
por 23.02.2016 / 12:38