Qual é o propósito da diretiva “Before =”?

1

Para mim, parece mais natural para serviços que, de alguma forma, dependem de outras pessoas para especificar isso em seus scripts (usando Requires= e After= diretivas). Afinal de contas, ao escrever um serviço, você não pode realmente saber sobre todos os serviços que podem depender dele, mas você pode saber do que seu serviço depende.

Portanto, a pergunta é: qual é o propósito real da diretiva Before= ? Quando deve ser usado?

    
por skyking 16.04.2018 / 10:42

1 resposta

3

Before e After especificam restrições de pedidos entre serviços, eles não especificam restrições de dependência entre serviços. Portanto, não há necessidade de documentar exaustivamente os serviços que dependem de qualquer serviço dentro da declaração Before do serviço. como você corretamente aponta, isso é impossível.

Before é usado quando você sabe que seu serviço deve ser iniciado antes de outra unidade conhecida, mesmo quando a outra unidade não depende necessariamente do serviço especificado. O aspecto importante é onde faz sentido que o conhecimento seja capturado. Em particular, é frequentemente usado nas descrições de serviço para afirmar que o serviço deve ser iniciado antes de um determinado destino e é praticamente a única maneira sensata de descrever restrições de pedidos entre serviços e destinos; por exemplo, wpa_supplicant@ deve ser iniciado antes da meta network . Outros casos em que é apropriado incluir serviços que "aumentam" os outros de alguma forma, onde não se pode esperar que o serviço aumentado saiba sobre o serviço de aumento; por exemplo, fwupd diz que deve ser iniciado antes do serviço gdm , o que é OK, mas você não esperaria que gdm soubesse que deveria iniciar após fwupd (ou pior ainda, depender disso ).

    
por 16.04.2018 / 11:08

Tags