#!/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 Domain-0 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:" NETVM=$(qvm-get-default-netvm) if [ "X"$NETVM = "X" ] ; then NETVM="dom0" fi qvm-run -q --shutdown --all --wait --exclude $NETVM 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