Annotation of /branches/magellan-next/include/mtools.minc
Parent Directory | Revision Log
Revision 29 -
(hide annotations)
(download)
Fri Aug 26 22:19:37 2011 UTC (12 years, 9 months ago) by niro
File size: 7328 byte(s)
Fri Aug 26 22:19:37 2011 UTC (12 years, 9 months ago) by niro
File size: 7328 byte(s)
-fixed whitespaces
1 | niro | 18 | # $Id$ |
2 | niro | 1 | |
3 | # adds services to runlevels and starts them | ||
4 | # mstartservice service {/path/to/service_exec} | ||
5 | mstartservice() | ||
6 | { | ||
7 | local service="$1" | ||
8 | local service_exec="$2" | ||
9 | |||
10 | niro | 18 | # only run if sysV init was found |
11 | if [[ ! -f /etc/rc.d/init.d/functions ]] | ||
12 | then | ||
13 | echo "sysV init not found, not adding service ${service} to runlevels!" | ||
14 | return | ||
15 | fi | ||
16 | |||
17 | niro | 20 | [[ -z ${service_exec} ]] && service_exec="$(which ${service})" |
18 | niro | 1 | |
19 | # add service to default runlevels | ||
20 | niro | 8 | echo -e " ${COLBLUE}[${COLGREEN}+${COLBLUE}]${COLDEFAULT} adding ${service} to default runlevels ..." |
21 | niro | 1 | [[ -x ${MROOT}/etc/rc.d/init.d/${service} ]] && rc-config add ${service} &> /dev/null |
22 | |||
23 | # do not start services on bootstrap or MROOT!=/ | ||
24 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
25 | then | ||
26 | # start service | ||
27 | if [[ -n $(pidof ${service_exec}) ]] | ||
28 | then | ||
29 | # restart service | ||
30 | /etc/init.d/${service} restart | ||
31 | else | ||
32 | # start service | ||
33 | /etc/init.d/${service} start | ||
34 | fi | ||
35 | fi | ||
36 | } | ||
37 | |||
38 | # removes services from runlevels and stops them | ||
39 | # mstopservice service {/path/to/service_exec} | ||
40 | mstopservice() | ||
41 | { | ||
42 | local service="$1" | ||
43 | local service_exec="$2" | ||
44 | |||
45 | niro | 18 | # only run if sysV init was found |
46 | if [[ ! -f /etc/rc.d/init.d/functions ]] | ||
47 | then | ||
48 | echo "sysV init not found, not adding service ${service} to runlevels!" | ||
49 | return | ||
50 | fi | ||
51 | |||
52 | niro | 20 | [[ -z ${service_exec} ]] && service_exec="$(which ${service})" |
53 | niro | 1 | |
54 | # only stop the service if ${service_exec} does not exist | ||
55 | [[ -f ${MROOT}/${service_exec} ]] && return | ||
56 | |||
57 | # del services from runlevel regardless if they exist or not | ||
58 | niro | 8 | echo -e " ${COLBLUE}[${COLRED}-${COLBLUE}]${COLDEFAULT} removing ${service} from default runlevels ..." |
59 | niro | 1 | rc-config del ${service} &> /dev/null |
60 | |||
61 | # do not stop services on bootstrap or MROOT!=/ | ||
62 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
63 | then | ||
64 | # stop service if running | ||
65 | if [[ -n $(pidof ${service_exec}) ]] | ||
66 | then | ||
67 | killall -15 ${service_exec} &> /dev/null | ||
68 | sleep 1 | ||
69 | killall -9 ${service_exec} &> /dev/null | ||
70 | fi | ||
71 | fi | ||
72 | niro | 4 | } |
73 | |||
74 | # reloads a service if already running | ||
75 | # mreloadservice service {/path/to/service_exec} | ||
76 | mreloadservice() | ||
77 | { | ||
78 | local service="$1" | ||
79 | local service_exec="$2" | ||
80 | |||
81 | niro | 18 | # only run if sysV init was found |
82 | if [[ ! -f /etc/rc.d/init.d/functions ]] | ||
83 | then | ||
84 | echo "sysV init not found, not adding service ${service} to runlevels!" | ||
85 | return | ||
86 | fi | ||
87 | |||
88 | niro | 20 | [[ -z ${service_exec} ]] && service_exec="$(which ${service})" |
89 | niro | 4 | |
90 | # do not stop services on bootstrap or MROOT!=/ | ||
91 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
92 | then | ||
93 | # only reload the service if running | ||
94 | if [[ -n $(pidof ${service_exec}) ]] | ||
95 | then | ||
96 | /etc/init.d/${service} reload | ||
97 | fi | ||
98 | fi | ||
99 | } | ||
100 | niro | 16 | |
101 | # adds systemd units to runlevels and starts them | ||
102 | # mstartunit service {/path/to/service_exec} | ||
103 | mstartunit() | ||
104 | { | ||
105 | local service="$1" | ||
106 | local service_exec="$2" | ||
107 | |||
108 | # only run if systemd was found | ||
109 | if [[ ! -x /bin/systemctl ]] | ||
110 | then | ||
111 | echo "systemd not found, not adding unit ${service} to runlevels!" | ||
112 | return | ||
113 | fi | ||
114 | |||
115 | # we do not support $MROOT atm | ||
116 | niro | 17 | if [[ ${MROOT} != / ]] && [[ ! -z ${MROOT} ]] |
117 | niro | 16 | then |
118 | echo "\$MROOT is set, doing nothing!" | ||
119 | echo "Please add unit ${service} manually to the runlevels!" | ||
120 | echo "Run 'systemctl enable ${service}' in your chroot later on." | ||
121 | return | ||
122 | fi | ||
123 | |||
124 | niro | 20 | if [[ -z ${service_exec} ]] |
125 | then | ||
126 | case ${service} in | ||
127 | *.service) service_exec="$(which ${service%%.service} 2> /dev/null)" ;; | ||
128 | *.socket) service_exec="$(which ${service%%.socket} 2> /dev/null)" ;; | ||
129 | *.mount) service_exec="$(which ${service%%.mount} 2> /dev/null)" ;; | ||
130 | *.target) service_exec="$(which ${service%%.target} 2> /dev/null)" ;; | ||
131 | *) service_exec="$(which ${service} 2> /dev/null)" ;; | ||
132 | esac | ||
133 | fi | ||
134 | niro | 16 | |
135 | # add service to default runlevels | ||
136 | echo -e " ${COLBLUE}[${COLGREEN}+${COLBLUE}]${COLDEFAULT} adding unit ${service} to default runlevels ..." | ||
137 | # reload daemon to honor changed unit files | ||
138 | systemctl daemon-reload | ||
139 | systemctl enable ${service} | ||
140 | |||
141 | # do not start services on bootstrap or MROOT!=/ | ||
142 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
143 | then | ||
144 | niro | 21 | echo -e " ${COLBLUE}[${COLGREEN}+${COLBLUE}]${COLDEFAULT} starting unit ${service} ..." |
145 | niro | 16 | # start or restart the service |
146 | niro | 22 | # dont use try-restart, works only with active services! |
147 | systemctl restart ${service} | ||
148 | niro | 16 | fi |
149 | } | ||
150 | |||
151 | # removes systemd units from runlevels and stops them | ||
152 | # mstopunit service {/path/to/service_exec} | ||
153 | mstopunit() | ||
154 | { | ||
155 | local service="$1" | ||
156 | local service_exec="$2" | ||
157 | |||
158 | # only run if systemd was found | ||
159 | if [[ ! -x /bin/systemctl ]] | ||
160 | then | ||
161 | echo "systemd not found, not removing unit ${service} from runlevels!" | ||
162 | return | ||
163 | fi | ||
164 | |||
165 | # we do not support $MROOT atm | ||
166 | niro | 17 | if [[ ${MROOT} != / ]] && [[ ! -z ${MROOT} ]] |
167 | niro | 16 | then |
168 | echo "\$MROOT is set, doing nothing!" | ||
169 | echo "Please remove unit ${service} manually from the runlevels!" | ||
170 | echo "Run 'systemctl disable ${service}' in your chroot later on." | ||
171 | return | ||
172 | fi | ||
173 | |||
174 | niro | 20 | if [[ -z ${service_exec} ]] |
175 | then | ||
176 | case ${service} in | ||
177 | *.service) service_exec="$(which ${service%%.service} 2> /dev/null)" ;; | ||
178 | *.socket) service_exec="$(which ${service%%.socket} 2> /dev/null)" ;; | ||
179 | *.mount) service_exec="$(which ${service%%.mount} 2> /dev/null)" ;; | ||
180 | *.target) service_exec="$(which ${service%%.target} 2> /dev/null)" ;; | ||
181 | *) service_exec="$(which ${service} 2> /dev/null)" ;; | ||
182 | esac | ||
183 | fi | ||
184 | niro | 16 | |
185 | # only stop the service if ${service_exec} does not exist | ||
186 | [[ -f ${MROOT}/${service_exec} ]] && return | ||
187 | |||
188 | # del services from runlevel regardless if they exist or not | ||
189 | echo -e " ${COLBLUE}[${COLRED}-${COLBLUE}]${COLDEFAULT} removing unit ${service} from default runlevels ..." | ||
190 | # reload daemon to honor changed unit files | ||
191 | systemctl daemon-reload | ||
192 | systemctl disable ${service} | ||
193 | |||
194 | # do not stop services on bootstrap or MROOT!=/ | ||
195 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
196 | then | ||
197 | niro | 21 | echo -e " ${COLBLUE}[${COLGREEN}+${COLBLUE}]${COLDEFAULT} stopping unit ${service} ..." |
198 | niro | 16 | systemctl stop ${service} |
199 | # try harder | ||
200 | if [[ -n $(pidof ${service_exec}) ]] | ||
201 | then | ||
202 | killall -15 ${service_exec} &> /dev/null | ||
203 | sleep 1 | ||
204 | killall -9 ${service_exec} &> /dev/null | ||
205 | fi | ||
206 | fi | ||
207 | } | ||
208 | |||
209 | # reloads a systemd unit if already running | ||
210 | # mreloadunit service {/path/to/service_exec} | ||
211 | mreloadunit() | ||
212 | { | ||
213 | local service="$1" | ||
214 | local service_exec="$2" | ||
215 | |||
216 | # only run if systemd was found | ||
217 | if [[ ! -x /bin/systemctl ]] | ||
218 | then | ||
219 | echo "systemd not found, not removing unit ${service} from runlevels!" | ||
220 | return | ||
221 | fi | ||
222 | |||
223 | # we do not support $MROOT atm | ||
224 | niro | 17 | if [[ ${MROOT} != / ]] && [[ ! -z ${MROOT} ]] |
225 | niro | 16 | then |
226 | echo "\$MROOT is set, doing nothing!" | ||
227 | echo "Please remove unit ${service} manually from the runlevels!" | ||
228 | echo "Run 'systemctl disable ${service}' in your chroot later on." | ||
229 | return | ||
230 | fi | ||
231 | |||
232 | niro | 20 | if [[ -z ${service_exec} ]] |
233 | then | ||
234 | case ${service} in | ||
235 | *.service) service_exec="$(which ${service%%.service} 2> /dev/null)" ;; | ||
236 | *.socket) service_exec="$(which ${service%%.socket} 2> /dev/null)" ;; | ||
237 | *.mount) service_exec="$(which ${service%%.mount} 2> /dev/null)" ;; | ||
238 | *.target) service_exec="$(which ${service%%.target} 2> /dev/null)" ;; | ||
239 | *) service_exec="$(which ${service} 2> /dev/null)" ;; | ||
240 | esac | ||
241 | fi | ||
242 | niro | 16 | |
243 | niro | 28 | # reload daemon to honor changed unit files |
244 | systemctl daemon-reload | ||
245 | |||
246 | niro | 16 | # do not stop services on bootstrap or MROOT!=/ |
247 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
248 | then | ||
249 | # only reload the service if running | ||
250 | systemctl reload-or-try-restart ${service} | ||
251 | fi | ||
252 | } |