#! /bin/sh # chkconfig: 345 35 65 # description: VirtualBox virtual machines manager # ### BEGIN INIT INFO # Provides: startvm # Required-Start: vboxdrv # Required-Stop: vboxdrv # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: VirtualBox virtual machines manager ### END INIT INFO PATH=$PATH:/bin:/sbin:/usr/sbin # Source function library. . /etc/init.d/functions # user to use to start VirtualBox VMUSER=armando # virtual machines to manage VMS=( "CentOS 7" ) case "$1" in start) echo "Starting VirtualBox VM ..." for VM in "${VMS[@]}" do sudo -u $VMUSER VBoxManage startvm "$VM" --type headless >> /var/log/startvm.log 2>&1 done success ;; stop) echo "Saving state of VirtualBox VM ..." for VM in "${VMS[@]}" do sudo -u $VMUSER VBoxManage controlvm "$VM" savestate >> /var/log/startvm.log 2>&1 done success ;; *) echo "Usage: /etc/init.d/startvm {startstop}" exit 1 ;; esac exit 0
remember to modify in file /etc/sudoers row
Defaults requiretty
to
#Defaults requiretty
a more recent approach stay here https://ubuntuforums.org/showthread.php?t=2387221