Init-Skript xendriverdomain
Init-Skript /etc/init.d/xendriverdomain
#!/bin/sh ### BEGIN INIT INFO # Provides: xendriverdomain # Required-Start: $syslog $remote_fs $network # Required-Stop: $syslog $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Xen driverdomain daemon # Description: Xen driverdomain daemon ### END INIT INFO . /lib/init/vars.sh . /lib/lsb/init-functions PATH=/sbin:/bin:/usr/sbin:/usr/bin DESC="Xen driverdomain daemon" case "$(cat /sys/hypervisor/type 2>/dev/null)" in xen) ;; *) exit 0 ;; # not running under Xen esac VERSION=$(/usr/lib/xen-common/bin/xen-version) ROOT=$(/usr/lib/xen-common/bin/xen-dir) if [ $? -ne 0 ]; then log_warning_msg "No compatible Xen utils for Xen $VERSION" exit 1 fi XENDRIVERDOMAIN="/usr/sbin/xl" XENDRIVERDOMAIN_PIDFILE="/run/xendriverdomain.pid" XENDRIVERDOMAIN_ARGS="devd -p /run/xendriverdomain.pid 2>/dev/null" modules_setup() { modprobe xenfs 2>/dev/null modprobe xen-evtchn 2>/dev/null modprobe xen-gntdev 2>/dev/null modprobe xen-acpi-processor 2>/dev/null } xenfs_setup() { [ -e "/proc/xen/capabilities" ] && return 0 log_progress_msg "xenfs" [ -d "/proc/xen" ] || return 1 mount -t xenfs xenfs /proc/xen || return 1 return 0 } capability_check() { [ -d "/proc/xen" ] || return 1 [ -e "/proc/xen/capabilities" ] || return 1 return 0 } xendriverdomain_start() { log_progress_msg "xendriverdomain" xendriverdomain_start_real return $? } xendriverdomain_stop() { log_progress_msg "xendriverdomain" xendriverdomain_stop_real return $? } xendriverdomain_restart() { log_progress_msg "xendriverdomain" xendriverdomain_stop_real case "$?" in 0|1) xendriverdomain_start_real case "$?" in 0) ;; *) return 2 ;; esac ;; *) return 2 ;; esac return 0 } xendriverdomain_start_real() { start-stop-daemon --start --quiet --pidfile "$XENDRIVERDOMAIN_PIDFILE" --exec "$XENDRIVERDOMAIN" -- \ $XENDRIVERDOMAIN_ARGS --pid-file "$XENDRIVERDOMAIN_PIDFILE" \ || return 2 } xendriverdomain_stop_real() { start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile "$XENDRIVERDOMAIN_PIDFILE" --name xendriverdomain RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 kill `cat $XENDRIVERDOMAIN_PIDFILE` for pid in `ps aux | grep -v grep | grep 'xl devd' | awk '{print $2}'`; do kill $pid done rm -f $XENDRIVERDOMAIN_PIDFILE return "$RETVAL" } case "$1" in start) log_daemon_msg "Starting $DESC" modules_setup xenfs_setup case "$?" in 0) ;; *) log_end_msg 1; exit ;; esac capability_check case "$?" in 0) ;; *) log_end_msg 0; exit ;; # not a dom0, skip the rest esac xendriverdomain_start case "$?" in 0) ;; *) log_end_msg 0; exit ;; # not a dom0, skip the rest esac log_end_msg 0 ;; stop) xendriverdomain_stop case "$?" in 0|1) ;; *) ret=1 ;; esac log_daemon_msg "Stopping $DESC" ret=0 log_end_msg $ret ;; restart|force-reload) xendriverdomain_start case "$?" in 0) ;; *) log_end_msg 0; exit ;; # not a dom0, skip the rest esac log_daemon_msg "Restarting $DESC" ret=0 log_end_msg $ret ;; *) echo "Usage: $0 {start|stop|restart|force-reload}" >&2 exit 3 ;; esac exit 0