Create ''/etc/rc.local'', containing: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. su -l slack -c "VBoxManage startvm alito --type=headless" exit 0 Change permissions: chmod +x /etc/rc.local Activate it by adding the following content to ''/etc/systemd/system/rc-local.service'': [Unit] Description=/etc/rc.local ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target Enable the ''rc-local'' script on boot: systemctl enable rc-local Start the ''rc-local'' script: systemctl start rc-local.service Check if any error occurred while starting the service: systemctl status rc-local.service