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 ).