1 |
wschlich 09/09/01 09:56:36 |
2 |
|
3 |
Added: xend.initd-r1 xendomains.initd-r1 |
4 |
Log: |
5 |
fix bugs 248771, 248797, 248917 |
6 |
(Portage version: 2.2_rc33/cvs/Linux i686) |
7 |
|
8 |
Revision Changes Path |
9 |
1.1 app-emulation/xen-tools/files/xend.initd-r1 |
10 |
|
11 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/xen-tools/files/xend.initd-r1?rev=1.1&view=markup |
12 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/xen-tools/files/xend.initd-r1?rev=1.1&content-type=text/plain |
13 |
|
14 |
Index: xend.initd-r1 |
15 |
=================================================================== |
16 |
#!/sbin/runscript |
17 |
# Copyright 1999-2005 Gentoo Foundation |
18 |
# Distributed under the terms of the GNU General Public License v2 |
19 |
# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen-tools/files/xend.initd-r1,v 1.1 2009/09/01 09:56:36 wschlich Exp $ |
20 |
|
21 |
opts="start stop status restart" |
22 |
|
23 |
depend() { |
24 |
need net |
25 |
before xendomains sshd ntp-client ntpd nfs nfsmount rsyncd portmap dhcp |
26 |
} |
27 |
|
28 |
await_daemons_up() { |
29 |
for ((i=0; i<5; i++)); do |
30 |
/usr/sbin/xend status && return 0 |
31 |
sleep 1 |
32 |
done |
33 |
return 1 |
34 |
} |
35 |
|
36 |
is_privileged_domain() { |
37 |
grep -qsE '^control_d$' /proc/xen/capabilities |
38 |
return $? |
39 |
} |
40 |
|
41 |
start() { |
42 |
if is_privileged_domain ; then |
43 |
ebegin "Starting Xen control daemon" |
44 |
/usr/sbin/xend start && await_daemons_up |
45 |
eend $? |
46 |
else |
47 |
eerror "Can't start xend - this is not a privileged domain." |
48 |
return 1 |
49 |
fi |
50 |
} |
51 |
|
52 |
stop() { |
53 |
if [ "$(xm list 2>/dev/null | wc -l)" -gt 2 ]; then |
54 |
ebegin "Stopping all Xen domains" |
55 |
/usr/sbin/xm shutdown --all --wait >/dev/null |
56 |
eend $? |
57 |
fi |
58 |
|
59 |
ebegin "Stopping Xen control daemon" |
60 |
/usr/sbin/xend stop |
61 |
eend $? |
62 |
|
63 |
#ebegin "Stopping xenconsoled" |
64 |
#kill $(</var/run/xenconsoled.pid) |
65 |
#eend $? |
66 |
|
67 |
#ebegin "Stopping xenstored" |
68 |
#kill $(</var/run/xenstore.pid) |
69 |
#eend $? |
70 |
} |
71 |
|
72 |
restart() { |
73 |
# IMPORTANT: do NOT restart xenstored/xenconsoled when restarting |
74 |
# just xend, as this can be fatal! |
75 |
# When restarting xend, leave alone xenstored/xenconsoled and all |
76 |
# running domains. |
77 |
# See http://article.gmane.org/gmane.comp.emulators.xen.user/40656 |
78 |
ebegin "Restarting Xen control daemon" |
79 |
/usr/sbin/xend restart |
80 |
eend $? |
81 |
# we fool /etc/init.d/runscript.sh:svc_restart() here: svc_stop svc_start |
82 |
} |
83 |
|
84 |
status() { |
85 |
is_privileged_domain && /usr/sbin/xend status |
86 |
} |
87 |
|
88 |
|
89 |
|
90 |
1.1 app-emulation/xen-tools/files/xendomains.initd-r1 |
91 |
|
92 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/xen-tools/files/xendomains.initd-r1?rev=1.1&view=markup |
93 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-emulation/xen-tools/files/xendomains.initd-r1?rev=1.1&content-type=text/plain |
94 |
|
95 |
Index: xendomains.initd-r1 |
96 |
=================================================================== |
97 |
#!/sbin/runscript |
98 |
# Copyright 1999-2006 Gentoo Foundation |
99 |
# Distributed under the terms of the GNU General Public License v2 |
100 |
# $Header: /var/cvsroot/gentoo-x86/app-emulation/xen-tools/files/xendomains.initd-r1,v 1.1 2009/09/01 09:56:36 wschlich Exp $ |
101 |
|
102 |
opts="start stop status restart" |
103 |
|
104 |
depend() { |
105 |
need xend |
106 |
after dhcp |
107 |
} |
108 |
|
109 |
get_domname() { |
110 |
local name_from_file=$(sed -rn 's/^name\W*=\W*\"?([[:alnum:]_\.-]+)\"?\W*;?/\1/p' "${1}" | tail -n 1) |
111 |
|
112 |
if [[ -z ${name_from_file} ]] ; then |
113 |
basename "${1}" |
114 |
else |
115 |
echo ${name_from_file} |
116 |
fi |
117 |
} |
118 |
|
119 |
is_running() { |
120 |
/usr/sbin/xm list "${1}" >/dev/null 2>&1 |
121 |
} |
122 |
|
123 |
using_screen() { |
124 |
[[ "${SCREEN}" == "yes" || "${SCREEN}" == "YES" ]] |
125 |
} |
126 |
|
127 |
set_screen_cmd() { |
128 |
screen_cmd="screen -c ${SCREENRC:-/dev/null} -q -r ${SCREEN_NAME:=xen} -X" |
129 |
} |
130 |
|
131 |
start() { |
132 |
set_screen_cmd |
133 |
|
134 |
einfo "Starting Xen domains from ${AUTODIR:=/etc/xen/auto}" |
135 |
if using_screen ; then |
136 |
ebegin "Creating screen session to hold domain consoles" |
137 |
( screen -c ${SCREENRC:-/dev/null} -d -m -S ${SCREEN_NAME} -t dom0 \ |
138 |
&& ${screen_cmd} zombie dr \ |
139 |
&& logrotate -f /etc/xen/xen-consoles.logrotate \ |
140 |
&& ${screen_cmd} logfile /var/log/xen-consoles/%t.log \ |
141 |
&& ${screen_cmd} logfile flush ${SCREEN_LOG_INTERVAL:-1} \ |
142 |
&& ${screen_cmd} log on \ |
143 |
&& ${screen_cmd} deflog on ) >/dev/null |
144 |
if [[ $? -ne 0 ]] ; then |
145 |
eend 1 |
146 |
return 1 |
147 |
else |
148 |
eend |
149 |
fi |
150 |
fi |
151 |
# Create all domains with config files in AUTODIR. |
152 |
for dom in $(ls "${AUTODIR:=/etc/xen/auto}/"* 2>/dev/null | sort); do |
153 |
name=$(get_domname ${dom}) |
154 |
if ! is_running ${name} ; then |
155 |
ebegin " Starting domain ${name}" |
156 |
if using_screen ; then |
157 |
${screen_cmd} screen -t ${name} xm create ${dom} -c |
158 |
else |
159 |
xm create --quiet ${dom} |
160 |
fi |
161 |
eend $? |
162 |
else |
163 |
einfo " Not starting domain ${name} - already running" |
164 |
fi |
165 |
done |
166 |
} |
167 |
|
168 |
stop() { |
169 |
set_screen_cmd |
170 |
|
171 |
einfo "Shutting down Xen domains from ${AUTODIR:=/etc/xen/auto}" |
172 |
# Stop all domains with config files in AUTODIR. |
173 |
DOMAINS="$(ls "${AUTODIR:=/etc/xen/auto}/"* 2>/dev/null | sort -r)" |
174 |
|
175 |
if [[ "$PARALLEL_SHUTDOWN" = "yes" ]] ; then |
176 |
for dom in $DOMAINS ; do |
177 |
name=$(get_domname ${dom}) |
178 |
if is_running ${name} ; then |
179 |
ebegin " Asking domain ${name} to shutdown in the background..." |
180 |
xm shutdown --wait ${name} >/dev/null & |
181 |
else |
182 |
einfo " Not stopping domain ${name} - not running" |
183 |
fi |
184 |
done |
185 |
einfo " Waiting for shutdown of domains that are still running" |
186 |
wait |
187 |
eend $? |
188 |
else |
189 |
for dom in $DOMAINS ; do |
190 |
name=$(get_domname ${dom}) |
191 |
if is_running ${name} ; then |
192 |
ebegin " Waiting for domain ${name} to shutdown" |
193 |
xm shutdown --wait ${name} >/dev/null |
194 |
eend $? |
195 |
else |
196 |
einfo " Not stopping domain ${name} - not running" |
197 |
fi |
198 |
done |
199 |
fi |
200 |
if using_screen ; then |
201 |
if ${screen_cmd} sleep 0 >/dev/null 2>&1 ; then |
202 |
ebegin "Closing screen session ${SCREEN_NAME}" |
203 |
${screen_cmd} quit |
204 |
eend $? |
205 |
else |
206 |
eend 0 |
207 |
fi |
208 |
fi |
209 |
} |
210 |
|
211 |
status() { |
212 |
/usr/sbin/xm list |
213 |
} |