Os parâmetros After=
e Before=
são estritamente para solicitar a inicialização (e talvez o desligamento) de dois serviços se ambos forem solicitados a serem iniciados. Ter um serviço listado não significa que esses serviços também serão iniciados.
Se você quiser controlar se outro serviço será iniciado, use Requires=
, Wants=
ou Conflicts=
(que vão na seção [Unit]
) ou WantedBy=
(que entra em a seção [Install]
).
No seu caso, você deseja iniciar um serviço quando algo dependente dele é iniciado (o que não acontece automaticamente, pois não há motivo para isso). Você desejará adicionar o seguinte ao arquivo e, em seguida, executar systemctl enable dependent
:
[Install]
WantedBy=main.service
Isso diz que quando main
for iniciado, para iniciar também este serviço e se esse serviço falhar, não pare main
.