Когда я запускаю «перезагрузку» или «выключение питания», systemd убивает все процессы, но мне нужно дождаться завершения одного конкретного приложения, прежде чем останавливать другие службы.
На самом деле, я хочу Virtualbox vm clean shutdown / savestate. Нет проблем сделать это вручную с этим служебным файлом, но при выключении - процессы убиваются. Как я могу это контролировать?
Я читал документы, но не нашел четкого решения для такого рода зависимости.
[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
Решено.
[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