Annotation of /branches/magellan-next/include/mtools.minc
Parent Directory | Revision Log
Revision 18 -
(hide annotations)
(download)
Thu Jun 2 18:16:14 2011 UTC (12 years, 11 months ago) by niro
File size: 6019 byte(s)
Thu Jun 2 18:16:14 2011 UTC (12 years, 11 months ago) by niro
File size: 6019 byte(s)
-do not sysV init services if not found
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 | 1 | [[ -z ${service_exec} ]] && service_exec="$(which ${service})" |
18 | |||
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 | 1 | [[ -z ${service_exec} ]] && service_exec="$(which ${service} 2> /dev/null)" |
53 | |||
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 | 4 | [[ -z ${service_exec} ]] && service_exec="$(which ${service} 2> /dev/null)" |
89 | |||
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 | |||
102 | # adds systemd units to runlevels and starts them | ||
103 | # mstartunit service {/path/to/service_exec} | ||
104 | mstartunit() | ||
105 | { | ||
106 | local service="$1" | ||
107 | local service_exec="$2" | ||
108 | |||
109 | # only run if systemd was found | ||
110 | if [[ ! -x /bin/systemctl ]] | ||
111 | then | ||
112 | echo "systemd not found, not adding unit ${service} to runlevels!" | ||
113 | return | ||
114 | fi | ||
115 | |||
116 | # we do not support $MROOT atm | ||
117 | niro | 17 | if [[ ${MROOT} != / ]] && [[ ! -z ${MROOT} ]] |
118 | niro | 16 | then |
119 | echo "\$MROOT is set, doing nothing!" | ||
120 | echo "Please add unit ${service} manually to the runlevels!" | ||
121 | echo "Run 'systemctl enable ${service}' in your chroot later on." | ||
122 | return | ||
123 | fi | ||
124 | |||
125 | [[ -z ${service_exec} ]] && service_exec="$(which ${service})" | ||
126 | |||
127 | # add service to default runlevels | ||
128 | echo -e " ${COLBLUE}[${COLGREEN}+${COLBLUE}]${COLDEFAULT} adding unit ${service} to default runlevels ..." | ||
129 | # reload daemon to honor changed unit files | ||
130 | systemctl daemon-reload | ||
131 | systemctl enable ${service} | ||
132 | |||
133 | # do not start services on bootstrap or MROOT!=/ | ||
134 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
135 | then | ||
136 | # start or restart the service | ||
137 | systemctl try-restart ${service} | ||
138 | fi | ||
139 | } | ||
140 | |||
141 | # removes systemd units from runlevels and stops them | ||
142 | # mstopunit service {/path/to/service_exec} | ||
143 | mstopunit() | ||
144 | { | ||
145 | local service="$1" | ||
146 | local service_exec="$2" | ||
147 | |||
148 | # only run if systemd was found | ||
149 | if [[ ! -x /bin/systemctl ]] | ||
150 | then | ||
151 | echo "systemd not found, not removing unit ${service} from runlevels!" | ||
152 | return | ||
153 | fi | ||
154 | |||
155 | # we do not support $MROOT atm | ||
156 | niro | 17 | if [[ ${MROOT} != / ]] && [[ ! -z ${MROOT} ]] |
157 | niro | 16 | then |
158 | echo "\$MROOT is set, doing nothing!" | ||
159 | echo "Please remove unit ${service} manually from the runlevels!" | ||
160 | echo "Run 'systemctl disable ${service}' in your chroot later on." | ||
161 | return | ||
162 | fi | ||
163 | |||
164 | [[ -z ${service_exec} ]] && service_exec="$(which ${service} 2> /dev/null)" | ||
165 | |||
166 | # only stop the service if ${service_exec} does not exist | ||
167 | [[ -f ${MROOT}/${service_exec} ]] && return | ||
168 | |||
169 | # del services from runlevel regardless if they exist or not | ||
170 | echo -e " ${COLBLUE}[${COLRED}-${COLBLUE}]${COLDEFAULT} removing unit ${service} from default runlevels ..." | ||
171 | # reload daemon to honor changed unit files | ||
172 | systemctl daemon-reload | ||
173 | systemctl disable ${service} | ||
174 | |||
175 | # do not stop services on bootstrap or MROOT!=/ | ||
176 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
177 | then | ||
178 | systemctl stop ${service} | ||
179 | # try harder | ||
180 | if [[ -n $(pidof ${service_exec}) ]] | ||
181 | then | ||
182 | killall -15 ${service_exec} &> /dev/null | ||
183 | sleep 1 | ||
184 | killall -9 ${service_exec} &> /dev/null | ||
185 | fi | ||
186 | fi | ||
187 | } | ||
188 | |||
189 | # reloads a systemd unit if already running | ||
190 | # mreloadunit service {/path/to/service_exec} | ||
191 | mreloadunit() | ||
192 | { | ||
193 | local service="$1" | ||
194 | local service_exec="$2" | ||
195 | |||
196 | # only run if systemd was found | ||
197 | if [[ ! -x /bin/systemctl ]] | ||
198 | then | ||
199 | echo "systemd not found, not removing unit ${service} from runlevels!" | ||
200 | return | ||
201 | fi | ||
202 | |||
203 | # we do not support $MROOT atm | ||
204 | niro | 17 | if [[ ${MROOT} != / ]] && [[ ! -z ${MROOT} ]] |
205 | niro | 16 | then |
206 | echo "\$MROOT is set, doing nothing!" | ||
207 | echo "Please remove unit ${service} manually from the runlevels!" | ||
208 | echo "Run 'systemctl disable ${service}' in your chroot later on." | ||
209 | return | ||
210 | fi | ||
211 | |||
212 | [[ -z ${service_exec} ]] && service_exec="$(which ${service} 2> /dev/null)" | ||
213 | |||
214 | # do not stop services on bootstrap or MROOT!=/ | ||
215 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
216 | then | ||
217 | # only reload the service if running | ||
218 | systemctl reload-or-try-restart ${service} | ||
219 | fi | ||
220 | } |