4 069
contributi
Riga 171: | Riga 171: | ||
e inseriamoci questo codice: | e inseriamoci questo codice: | ||
<pre> | <pre> | ||
#!/bin/sh | #! /bin/sh | ||
### BEGIN INIT INFO | |||
# Provides: VirtualBox - VM di Prova | |||
# Default-Start: 2 3 4 5 | |||
# Default-Stop: S 0 1 6 | |||
### END INIT INFO | |||
# Author: Ferdinando Bassi per Debianizzati.org | |||
# Do NOT "set -e" | |||
# PATH should only include /usr/* if it runs after the mountnfs.sh script | |||
PATH=/usr/sbin:/usr/bin:/sbin:/bin | |||
# | |||
# DA CAMBIARE E DA ADATTARE | |||
# | |||
# Name given to the virtual machine | |||
VM_NAME="prova" | |||
# Name of this file, excluding /etc/init.d/ | |||
THIS_FILE=prova | |||
# Username to run as | |||
RUNAS_USERNAME=root | |||
# | |||
# FINE SEZIONE DA MODIFICARE | |||
# | |||
DESC="VirtualBox - ${VM_NAME}" | |||
DAEMON=/usr/bin/VBoxVRDP | |||
DAEMON_ARGS="-startvm \"${VM_NAME}\"" | |||
PIDFILE=/var/run/$THIS_FILE.pid | |||
SCRIPTNAME=/etc/init.d/$THIS_FILE | |||
# Exit if the package is not installed | |||
[ -x "$DAEMON" ] || exit 0 | |||
# Read configuration variable file if it is present | |||
[ -r /etc/default/$THIS_FILE ] && . /etc/default/$THIS_FILE | |||
# Load the VERBOSE setting and other rcS variables | |||
[ -f /etc/default/rcS ] && . /etc/default/rcS | |||
# Define LSB log_* functions. | |||
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. | |||
. /lib/lsb/init-functions | |||
# | # | ||
# | # Function that starts the daemon/service | ||
# | # | ||
do_start() | |||
{ | |||
# Return | |||
# 0 if daemon has been started | |||
# 1 if daemon was already running | |||
# 2 if daemon could not be started | |||
#start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ | |||
#|| return 1 | |||
#start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ | |||
#$DAEMON_ARGS \ | |||
#|| return 2 | |||
# Add code here, if necessary, that waits for the process to be ready | |||
# to handle requests from services started subsequently which depend | |||
# on this one. As a last resort, sleep for some time. | |||
su $RUNAS_USERNAME -c "VBoxManage startvm ${VM_NAME} -type vrdp" | |||
} | |||
# | |||
# Function that stops the daemon/service | |||
# | |||
do_stop() | |||
{ | |||
# Return | |||
# 0 if daemon has been stopped | |||
# 1 if daemon was already stopped | |||
# 2 if daemon could not be stopped | |||
# other if a failure occurred | |||
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $THIS_FILE | |||
RETVAL="$?" | |||
[ "$RETVAL" = 2 ] && return 2 | |||
# Wait for children to finish too if this is a daemon that forks | |||
# and if the daemon is only ever run from this initscript. | |||
# If the above conditions are not satisfied then add some other code | |||
# that waits for the process to drop all resources that could be | |||
# needed by services started subsequently. A last resort is to | |||
# sleep for some time. | |||
su $RUNAS_USERNAME -c "VBoxManage controlvm ${VM_NAME} savestate" | |||
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON | |||
[ "$?" = 2 ] && return 2 | |||
# Many daemons don't delete their pidfiles when they exit. | |||
rm -f $PIDFILE | |||
return "$RETVAL" | |||
} | |||
# | |||
# Function that sends a SIGHUP to the daemon/service | |||
# | |||
do_reload() { | |||
# | |||
# If the daemon can reload its configuration without | |||
# restarting (for example, when it is sent a SIGHUP), | |||
# then implement that here. | |||
# | |||
# start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME | |||
echo "Reload not supported" | |||
return 0 | |||
} | |||
case "$1" in | case "$1" in | ||
start) | |||
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$THIS_FILE" | |||
do_start | |||
case "$?" in | |||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | |||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | |||
esac | |||
;; | |||
stop) | |||
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$THIS_FILE" | |||
do_stop | |||
case "$?" in | |||
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; | |||
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; | |||
esac | |||
;; | |||
#reload|force-reload) | |||
# | |||
# If do_reload() is not implemented then leave this commented out | |||
# and leave 'force-reload' as an alias for 'restart'. | |||
# | |||
#log_daemon_msg "Reloading $DESC" "$NAME" | |||
#do_reload | |||
#log_end_msg $? | |||
#;; | |||
*) | |||
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 | |||
echo "Usage: $SCRIPTNAME {start|stop}" >&2 | |||
exit 3 | |||
;; | |||
esac | esac | ||
: | |||
</pre> | </pre> | ||
Rendiamo eseguibile lo script appena creato: | Rendiamo eseguibile lo script appena creato: | ||
Riga 203: | Riga 331: | ||
/etc/init.d/provavm start|stop | /etc/init.d/provavm start|stop | ||
</pre> | </pre> | ||
==Installazione delle Guest Addictions== | ==Installazione delle Guest Addictions== | ||
Il pacchetto Guest Addictions contiene i drivers per l'hardware virtuale emulato da VirtualBox e, se installato, permette di migliorare stabilità e prestazioni della nostra virtual machine.<br> | Il pacchetto Guest Addictions contiene i drivers per l'hardware virtuale emulato da VirtualBox e, se installato, permette di migliorare stabilità e prestazioni della nostra virtual machine.<br> |