 f6e3607d2d
			
		
	
	
		f6e3607d2d
		
	
	
	
	
		
			
			Make meminfo-writer compute used memory, and report to qmemman only if it has changed significantly enough. As it is written in C, its code is much faster that qmemman-server; also in the idle case, it saves on xenstore communication overhead. Allows to send updates up to 10 times per second, with CPU load on the VM below 0.1%.
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # chkconfig: 2345 99 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
 | |
| 
 | |
| setup_dvm_files()
 | |
| {
 | |
|     ROOT=/var/lib/qubes/dvmdata/savefile_root
 | |
|     DEFAULT=/var/lib/qubes/dvmdata/default_savefile
 | |
|     if ! [ -f $DEFAULT ] ; then return ; fi
 | |
|     if ! [ -f $ROOT ] ; then return ; fi
 | |
|     if [ $ROOT -nt $DEFAULT ] ; then
 | |
|         echo DVM require reconfiguration
 | |
|         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 
 | |
| }
 | |
| 
 | |
| start()
 | |
| {
 | |
|     echo -n $"Executing Qubes Core scripts:"
 | |
|     chgrp qubes /etc/xen
 | |
|     chmod 710 /etc/xen
 | |
|     chgrp qubes /var/run/xend
 | |
|     chmod 710 /var/run/xend
 | |
|     chgrp qubes /var/run/xend/xen-api.sock /var/run/xend/xmlrpc.sock
 | |
|     chmod 660 /var/run/xend/xen-api.sock /var/run/xend/xmlrpc.sock
 | |
|     chgrp qubes /var/run/xenstored/*
 | |
|     chmod 660 /var/run/xenstored/*
 | |
|     xm sched-credit -d 0 -w 65535
 | |
|     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
 | |
|     xm mem-set 0 1600
 | |
|     cp /var/lib/qubes/qubes.xml /var/lib/qubes/backup/qubes-$(date +%F-%T).xml
 | |
|     setup_dvm_files
 | |
|     /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 &
 | |
| 
 | |
|     touch /var/lock/subsys/qubes_core
 | |
|     success
 | |
|     echo
 | |
| 
 | |
| }
 | |
| 
 | |
| stop()
 | |
| {
 | |
|     echo -n $"Shutting down all Qubes VMs:"
 | |
|     NETVM=$(qvm-get-default-netvm)
 | |
|     qvm-run -q --shutdown --all --wait --exclude $NETVM
 | |
|     rm -f /var/lock/subsys/qubes_core
 | |
|     success
 | |
|     echo
 | |
| }
 | |
| 
 | |
| case "$1" in
 | |
|   start)
 | |
| 	start
 | |
| 	;;
 | |
|   stop)
 | |
| 	stop
 | |
| 	;;
 | |
|   *)
 | |
| 	echo $"Usage: $0 {start|stop}"
 | |
| 	exit 3
 | |
| 	;;
 | |
| esac
 | |
| 
 | |
| exit $RETVAL
 |