88 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/sh
 | 
						|
#
 | 
						|
# chkconfig: 2345 99 00
 | 
						|
# description: Sets up DVM savefile at Dom0 boot
 | 
						|
#
 | 
						|
### BEGIN INIT INFO
 | 
						|
# Provides:          qubes-dvm
 | 
						|
# Required-Start:    qubes-networking
 | 
						|
# Default-Start:     3 4 5
 | 
						|
# Default-Stop:      0 1 2 6
 | 
						|
# Default-Enabled:   yes
 | 
						|
# Short-Description: Sets up DVM savefile at Dom0 boot
 | 
						|
# Description:       Sets up DVM savefile at Dom0 boot
 | 
						|
### END INIT INFO
 | 
						|
 | 
						|
# Source function library.
 | 
						|
. /etc/rc.d/init.d/functions
 | 
						|
 | 
						|
start()
 | 
						|
{
 | 
						|
    echo -n "Setting up DVM savefile at Dom0 boot:"
 | 
						|
 | 
						|
    printf "\x00\x00\x00\x00" > /var/run/qubes/dispVM_seq
 | 
						|
    chown root:qubes /var/run/qubes/dispVM_seq
 | 
						|
    chmod 660 /var/run/qubes/dispVM_seq
 | 
						|
    ROOT=/var/lib/qubes/dvmdata/savefile_root
 | 
						|
    DEFAULT=/var/lib/qubes/dvmdata/default_savefile
 | 
						|
    create_neeed=0
 | 
						|
    if ! [ -f $DEFAULT ] ; then create_neeed=1 ; fi
 | 
						|
    if ! [ -f $ROOT ] ; then create_neeed=1 ; fi
 | 
						|
    if [ $ROOT -nt $DEFAULT ] ; then create_neeed=1 ; fi
 | 
						|
    if [ $create_neeed = 1 ] ; then
 | 
						|
        MSG="Creating default DVM. This may take up to 2 minutes..."
 | 
						|
        echo " $MSG"
 | 
						|
        if [ -x /usr/bin/plymouth ]; then
 | 
						|
            /usr/bin/plymouth message --text="$MSG"
 | 
						|
            /usr/bin/plymouth pause-progress
 | 
						|
        fi
 | 
						|
        qvm-create-default-dvm --default-template --default-script
 | 
						|
        DVMDIR="/var/lib/qubes/appvms/`qvm-get-default-template`-dvm"
 | 
						|
        /bin/chown -R root.qubes "$DVMDIR"
 | 
						|
        /bin/chmod -R ug=rwX,o=rX "$DVMDIR"
 | 
						|
        if [ -x /usr/bin/plymouth ]; then
 | 
						|
            /usr/bin/plymouth message --text=""
 | 
						|
            /usr/bin/plymouth unpause-progress
 | 
						|
        fi
 | 
						|
        success
 | 
						|
        return
 | 
						|
    fi
 | 
						|
    if [ -f /var/lib/qubes/dvmdata/dont_use_shm ] ; then
 | 
						|
        ln -s $DEFAULT /var/run/qubes/current_savefile
 | 
						|
    else
 | 
						|
        mkdir -m 770 /dev/shm/qubes
 | 
						|
        chown root.qubes /dev/shm/qubes
 | 
						|
        cp $DEFAULT /dev/shm/qubes/current_savefile
 | 
						|
        chown root.qubes /dev/shm/qubes/current_savefile
 | 
						|
        chmod 660 /dev/shm/qubes/current_savefile
 | 
						|
        ln -s /dev/shm/qubes/current_savefile /var/run/qubes/current_savefile
 | 
						|
    fi
 | 
						|
 | 
						|
    touch /var/lock/subsys/qubes_setupdvm
 | 
						|
    success
 | 
						|
    echo
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
stop()
 | 
						|
{
 | 
						|
    rm -f /var/lock/subsys/qubes_netvm
 | 
						|
    success
 | 
						|
    echo
 | 
						|
}
 | 
						|
 | 
						|
case "$1" in
 | 
						|
  start)
 | 
						|
    start
 | 
						|
    ;;
 | 
						|
  stop)
 | 
						|
    stop
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
    echo $"Usage: $0 {start|stop}"
 | 
						|
    exit 3
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
exit $RETVAL
 |