VirtualBox Systemd
Run systemctl edit vbox@.service –full –force and paste the following content in, updating User and Group to your username.
[Unit] Description=Virtual Box Guest %I After=network.target vboxdrv.service Before=runlevel2.target shutdown.target
[Service] User=USERNAME Group=GROUPNAME Type=forking Restart=no TimeoutSec=5min IgnoreSIGPIPE=no KillMode=process GuessMainPID=no RemainAfterExit=yes
ExecStart=/usr/bin/VBoxManage startvm %i –type headless ExecStop=/usr/bin/VBoxManage controlvm %i acpipowerbutton
[Install] WantedBy=multi-user.target
Reload systemd: systemctl daemon-reload
Get a list of your VM’s VBoxManage list vms:
$ VBoxManage list vms “Ubuntu” {1ba32309-d4c4-420a-a9c8-a38177f00bc4} “Windows” {573df054-0e33-4389-896a-1234f10e25ad}
Use the name returned in step 3 to manage the VM via systemd. For example, to manage the “Ubuntu” VM you would run:
sudo systemctl start vbox@Ubuntu # Start the VM sudo systemctl enable vbox@Ubuntu # Start the VM on boot