 cd64f8287c
			
		
	
	
		cd64f8287c
		
	
	
	
	
		
			
			In fact all VMs can be stopped at the same time, no need to keep order. Also use qvm-shutdown to do it.
		
			
				
	
	
		
			86 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # chkconfig: 2345 80 00
 | |
| # description: Executes Qubes core scripts at Dom0 boot
 | |
| #
 | |
| ### BEGIN INIT INFO
 | |
| # Provides:          qubes-core
 | |
| # Required-Start:    xend
 | |
| # Default-Start:     3 4 5
 | |
| # Default-Stop:      0 1 2 6
 | |
| # Default-Enabled:   yes
 | |
| # Short-Description: Start/stop qubes-core services
 | |
| # Description:       Starts and stops the qubes-core serives
 | |
| ### END INIT INFO
 | |
| 
 | |
| # Source function library.
 | |
| . /etc/rc.d/init.d/functions
 | |
| 
 | |
| 
 | |
| start()
 | |
| {
 | |
|     echo -n $"Executing Qubes Core scripts:"
 | |
|     modprobe evtchn
 | |
|     chgrp qubes /etc/xen
 | |
|     chmod 710 /etc/xen
 | |
|     chgrp qubes /var/run/xenstored/*
 | |
|     chmod 660 /var/run/xenstored/*
 | |
|     chgrp qubes /var/lib/xen
 | |
|     chmod 770 /var/lib/xen
 | |
|     chgrp qubes /var/log/xen
 | |
|     chmod 770 /var/log/xen
 | |
|     chgrp qubes /proc/xen/privcmd
 | |
|     chmod 660 /proc/xen/privcmd
 | |
|     chgrp qubes /dev/xen/evtchn
 | |
|     chmod 660 /dev/xen/evtchn
 | |
|     touch /var/run/qubes/xl-lock
 | |
|     chgrp qubes /var/run/qubes/xl-lock
 | |
|     chmod 660 /var/run/qubes/xl-lock
 | |
|     mkdir -p /var/run/xen-hotplug
 | |
| 
 | |
|     xenstore-write /local/domain/0/name dom0
 | |
|     DOM0_MAXMEM=`/usr/sbin/xl info | grep total_memory | awk '{ print $3 }'`
 | |
|     xenstore-write /local/domain/0/memory/static-max $[ $DOM0_MAXMEM * 1024 ]
 | |
|     
 | |
|     xl sched-credit -d 0 -w 512
 | |
|     cp /var/lib/qubes/qubes.xml /var/lib/qubes/backup/qubes-$(date +%F-%T).xml
 | |
| 
 | |
|     /usr/lib/qubes/qmemman_daemon.py >/var/log/qubes/qmemman.log 2>/var/log/qubes/qmemman.errs & 
 | |
|     MEM_CHANGE_THRESHOLD_KB=30000
 | |
|     MEMINFO_DELAY_USEC=100000
 | |
|     /usr/lib/qubes/meminfo-writer $MEM_CHANGE_THRESHOLD_KB $MEMINFO_DELAY_USEC &
 | |
| 
 | |
|     /usr/lib/qubes/keep-dom0-clock-synced > /var/log/qubes/dom0-clock-sync.log 2>&1 &
 | |
| 
 | |
|     touch /var/lock/subsys/qubes_core
 | |
|     success
 | |
|     echo
 | |
| 
 | |
| }
 | |
| 
 | |
| stop()
 | |
| {
 | |
|     echo -n $"Shutting down all Qubes VMs:"
 | |
|     qvm-shutdown -q --all --wait
 | |
|     rm -f /var/lock/subsys/qubes_core
 | |
|     killall meminfo-writer
 | |
|     killall qmemman_daemon.py
 | |
|     success
 | |
|     echo
 | |
| }
 | |
| 
 | |
| case "$1" in
 | |
|   start)
 | |
| 	start
 | |
| 	;;
 | |
|   stop)
 | |
| 	stop
 | |
| 	;;
 | |
|   *)
 | |
| 	echo $"Usage: $0 {start|stop}"
 | |
| 	exit 3
 | |
| 	;;
 | |
| esac
 | |
| 
 | |
| exit $RETVAL
 |