Certamente, existe um caminho. systemd
suporta a especificação de "dependências de ordenação" entre pares de unidades que fazem com que systemd
sigam uma certa ordem mútua quando essas unidades são ativadas / desativadas em uma única transação.
Em systemd.unit (5) :
Before=, After=
A space-separated list of unit names. Configures ordering dependencies between units. If a unit foo.service contains a setting Before=bar.service and both units are being started, bar.service's start-up is delayed until foo.service is started up. <...> Note that when two units with an ordering dependency between them are shut down, the inverse of the start-up order is applied. i.e. if a unit is configured with After= on another unit, the former is stopped before the latter if both are shut down. <...>
Então, você quer que vmware.service
seja desativado (parado) antes que gdm.service
seja interrompido. Pelo exposto, pode ser obtido adicionando uma dependência de ordem After=gdm.service
à unidade vmware.service
.
Para evitar a cópia de toda a unidade para /etc/systemd/system
, você pode querer usar o mecanismo de drop-ins (veja" exemplo 2 "). Você precisa criar um arquivo chamado /etc/systemd/system/vmware.service.d/<some name>.conf
apenas com as diretivas e cabeçalhos de seção necessários:
[Unit]
After=gdm.service
Depois de fazer isso, emita um comando systemctl daemon-reload
para fazer systemd
reler as unidades. No desligamento, a nova lista de dependências deve se tornar efetiva.