Eu tenho uma pergunta sobre como criar meu próprio arquivo de unidade (serviço) para o Systemd.
Li a documentação e tive algumas dúvidas. Depois de pesquisar, encontrei esta resposta muito útil que fornece alguns detalhes sobre algumas das perguntas que eu estava tendo.
Como escrever um arquivo systemd .service executando systemd-tmpfiles
Embora eu ache essa resposta útil, ainda há uma parte que não entendo. Principalmente esta parte:
Como realmente queremos que esse serviço seja executado mais tarde, em vez de mais cedo, especificamos uma cláusula "Depois". Na verdade, isso não precisa ser o mesmo que o destino WantedBy (geralmente não é)
Meu entendimento de After é que é bastante direto. O serviço (ou o que você estiver definindo) será executado após a unidade listada em Depois.
Da mesma forma, WantedBy parece bastante direto. Você está definindo que a unidade que você lista tem um Desejo para o seu serviço. Portanto, para um destino como multiusuário ou gráfico, sua unidade deve ser executada para que o systemd considere esse destino alcançado.
Agora, supondo que meu entendimento de como essas declarações funcionam está correto até agora, minha pergunta é esta: Por que funcionaria listar a mesma unidade nas cláusulas After e WantedBy?
Por exemplo, definir uma unidade que é After multi-user.target e também WantedBy multi-user.target me parece que levaria a uma situação impossível em que a unidade precisa ser iniciada após o alvo ser atingido, mas também precisa ser iniciado para que a meta seja considerada "atingida".
Estou entendendo mal alguma coisa?