File: qemu-kvm.init

package info (click to toggle)
qemu-kvm 1.1.2%2Bdfsg-6%2Bdeb7u12
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 43,848 kB
  • sloc: ansic: 606,321; asm: 10,684; sh: 6,663; perl: 4,223; python: 3,802; makefile: 1,076; objc: 843; xml: 409
file content (81 lines) | stat: -rw-r--r-- 1,492 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#! /bin/sh
### BEGIN INIT INFO
# Provides:          qemu-kvm kvm
# Required-Start:    mountkernfs
# Required-Stop:     
# Should-Start:      udev devfsd
# Should-Stop:       
# Default-Start:     S
# Default-Stop:      
# Short-Description: KVM init script
# Description:       This script loads the kernel modules needed by kvm
### END INIT INFO

. /lib/lsb/init-functions

# Figure out which module we need.
whichmodule() {
    if grep -q '^flags.*\<vmx\>' /proc/cpuinfo
    then
	module=kvm_intel
	return 0
    elif grep -q '^flags.*\<svm\>' /proc/cpuinfo
    then
	module=kvm_amd
	return 0
    else
	module=
	return 1
    fi
}

case "$1" in
  start)
	if ! whichmodule
	then
		log_failure_msg "Your system does not have the CPU extensions required to use KVM. Not doing anything."
		exit 0
	fi
	if [ -c /dev/kvm ]
	then
		log_success_msg "/dev/kvm already exists. Not doing anything."
		exit 0
	fi
	if modprobe "$module" 
	then
		log_success_msg "Loading kvm module $module"
	else
		log_failure_msg "Module $module failed to load"
		exit 1
	fi
	;;
  stop)
	if ! whichmodule
	then
		exit 0
	fi
	if lsmod | grep -qw "$module"
	then
		if rmmod "$module" 
		then
			log_success_msg "Succesfully unloaded kvm module $module"
			rmmod kvm
		else
			log_failure_msg "Failed to remove $module"
			exit 1
		fi
	else
		log_failure_msg "Module $module not loaded"
	fi
	;;
  force-reload|restart)
	$0 stop
	$0 start
	;;
  *)
	echo "Usage: $0 {start|stop|restart|force-reload}" >&2
	exit 3
	;;
esac

: