systemd para esperar que o comando seja concluído antes de reiniciar / desligar ou matar outros processos

4

Quando eu estou iniciando "reboot" ou "poweroff", o systemd está eliminando todos os processos, mas eu preciso que ele espere que um aplicativo em particular termine antes de parar outros serviços.

Na verdade, eu quero o Virtualbox vm clean shutdown / savestate. Não há problema em fazê-lo manualmente com este arquivo de serviço, mas durante o desligamento - os processos são eliminados. Como posso controlar isso?

Li documentos, mas não encontrei uma solução clara para esse tipo de dependência.

[Unit]
Description=virtualbox vm1 vm control service
After=vboxweb-service.service
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/usr/bin/VBoxManage startvm vm1 -type vrdp
ExecStop=/usr/bin/VBoxManage controlvm vm1 savestate
RemainAfterExit=true
    
por GioMac 27.06.2013 / 15:23

1 resposta

4

Resolvido.

[Unit]
Description=virtualbox windows vm control service
After=vboxweb-service.service
Before=shutdown.target reboot.target halt.target

[Service]
Type=oneshot
ExecStart=/usr/bin/VBoxManage startvm windows -type vrdp
ExecStop=/usr/bin/VBoxManage controlvm windows savestate
RemainAfterExit=true
KillMode=none

[Install]
WantedBy=multi-user.target
    
por 27.06.2013 / 15:46