Isso é o que as diretivas WantedBy=
e RequiredBy=
nos arquivos systemd
unit são para:
Em man systemd.unit
:
WantedBy=, RequiredBy=
This option may be used more than once, or a space-separated list of unit names may be given. A symbolic link is created in the .wants/ or .requires/ directory of each of the listed units when this unit is installed by systemctl enable. This has the effect that a dependency of type Wants= or Requires= is added from the listed unit to the current unit. The primary result is that the current unit will be started when the listed unit is started. See the description of Wants= and Requires= in the [Unit] section for details.
Assim, o link simbólico criado é o que faz o systemd
iniciar a unidade dada quando o alvo / unidade é iniciado.
Então, por exemplo:
[Install]
WantedBy=graphical.target
Faria com que a unidade seja inicializada apenas quando graphical.target
for executado (se a unidade estiver ativada).
Outro exemplo:
[Install]
WantedBy=my-custom-target.target graphical.target
Faria com que a unidade seja iniciada quando my-custom-target.target
ou graphical.target
for executado (se a unidade estiver ativada).
Uma última coisa a ter em mente, pode ser difícil restringir as coisas a um único alvo porque algumas metas dependem de outras. Por exemplo, graphical.target
Requires=multi-user.target
, assim, quando graphical.target
for iniciado, todas as unidades de multi-user.target
também serão iniciadas. Apenas tenha em mente que alguns alvos são construídos sobre os outros, e que aqueles construídos no topo receberão tudo dos alvos que eles dependem.