blob: 81359889a834a414e17dd41a388d5c36752f97e1 (
plain)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
#!/bin/sh
#
# xe-linux-distribution Write Linux distribution information to XenStore.
#
# chkconfig: 2345 14 86
# description: Writes Linux distribution version information to XenStore.
#
### BEGIN INIT INFO
# Provides: xe-linux-distribution
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: @BRAND_GUEST@ daemon providing host integration services
# Description: Writes Linux distribution version information to XenStore.
### END INIT INFO
LANG="C"
export LANG
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
else
action()
{
descr=$1 ; shift
cmd=$@
echo -n "$descr "
$cmd
ret=$?
if [ $ret -eq 0 ] ; then
echo "OK"
else
echo "Failed"
fi
return $ret
}
fi
XE_LINUX_DISTRIBUTION=/usr/sbin/xe-linux-distribution
XE_LINUX_DISTRIBUTION_CACHE=/var/cache/xe-linux-distribution
XE_DAEMON=/usr/sbin/xe-daemon
XE_DAEMON_PIDFILE=/var/run/xe-daemon.pid
if [ ! -x "${XE_LINUX_DISTRIBUTION}" ] ; then
exit 0
fi
start()
{
if [ ! -e /proc/xen/xenbus ] ; then
if [ ! -d /proc/xen ] ; then
action $"Mounting xenfs on /proc/xen:" /bin/false
echo "Could not find /proc/xen directory."
echo "You need a post 2.6.29-rc1 kernel with CONFIG_XEN_COMPAT_XENFS=y and CONFIG_XENFS=y|m"
exit 1
else
# This is needed post 2.6.29-rc1 when /proc/xen support was pushed upstream as a xen filesystem
action $"Mounting xenfs on /proc/xen:" mount -t xenfs none /proc/xen
fi
fi
if [ -e /proc/xen/capabilities ] && grep -q control_d /proc/xen/capabilities ; then
# Do not want daemon in domain 0
exit 0
fi
action $"Detecting Linux distribution version:" \
${XE_LINUX_DISTRIBUTION} ${XE_LINUX_DISTRIBUTION_CACHE}
action $"Starting xe daemon: " /bin/true
mkdir -p $(dirname ${XE_DAEMON_PIDFILE})
if start-stop-daemon --start --background --exec ${XE_DAEMON} -- -p ${XE_DAEMON_PIDFILE} 1>/dev/null 2>/dev/null; then
exit 0
else
# This is equivalent to daemon() in C
( exec &>/dev/null ; ${XE_DAEMON} -p ${XE_DAEMON_PIDFILE} 2>/dev/null & )
fi
}
stop()
{
action $"Stopping xe daemon: " kill -TERM $(cat ${XE_DAEMON_PIDFILE})
}
status()
{
cat ${XE_LINUX_DISTRIBUTION_CACHE}
}
# fail silently if not running xen
if [ ! -d /proc/xen ]; then
exit
fi
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
force-reload|restart)
stop
start
;;
*)
# do not advertise unreasonable commands that there is no reason
# to use with this device
echo $"Usage: $0 start|restart|status"
exit 1
esac
exit $?
|