「再起動」または「電源オフ」を開始すると、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