É possível reiniciar muitos serviços do systemd com um destino?

É possível reiniciar muitos serviços do systemd com um destino?

Tenho muitos arquivos de unidades de serviço que preciso reiniciar e não quero digitá-los todos. É possível ter um único alvo ou serviço que não saiba nada sobre como iniciar os outros serviços, mas os agrupe para que todos sejam reiniciados com um único comando?

Como escrevo meu arquivo de unidade de serviço systemd ou arquivo de destino, se eu quiser systemctl restart one-to-rule-them-all?

Requisitos: 1. O alvo uber deseja que muitos outros serviços sejam iniciados. 2. O superalvo não deve saber nada sobre como iniciar esses serviços.

Quando tentei isso, sudo systemctl restart one-to-rule.targetnada aconteceu.

# /etc/systemd/system/one-to-rule.target
[Unit]
Description=One To Rule Them All
Requires=multi-user.target
Wants=program-api.service  program-gui.service yet-another.service
After=multi-user.target display-manager.service

[Install]
WantedBy=graphical.target

Cada uma dessas unidades program-api.service program-gui.service yet-another.serviceestava one-to-rule.targettodas habilitadas e todas parecem estar carregadas e ativas. Posso inicializar a máquina e todos os serviços aparecem exatamente como eu quero. No entanto, eu só quero digitar systemctl restart one-to-rule.targetou algo assim, em vez de reiniciar.

Os gráficos de dependência são assim

$ systemctl list-dependencies one-to-rule.target
one-to-rule.target
● ├─program-api.service
● ├─program-gui.service
● ├─yet-another.service
● └─multi-user.target

$ systemctl list-dependencies --reverse one-to-rule.target
one-to-rule.target
● └─graphical.target

Responder1

Isso pode funcionar, mas cada uma dessas unidades .service deve ter PartOf=one-to-rule.targetpara que as reinicializações sejam propagadas para elas. (Na verdade, esta é apenas uma versão mais fraca do Requires=<…>.target.)

Infelizmente não é possível especificar a dependência oposta (ConsistsOf) diretamente no destino – você precisa estender todos os arquivos de serviço.

informação relacionada