Annotation of /trunk/include/mtools.minc
Parent Directory | Revision Log
Revision 16 -
(hide annotations)
(download)
Thu Jun 2 17:44:13 2011 UTC (13 years, 5 months ago) by niro
Original Path: branches/magellan-next/include/mtools.minc
File size: 5586 byte(s)
Thu Jun 2 17:44:13 2011 UTC (13 years, 5 months ago) by niro
Original Path: branches/magellan-next/include/mtools.minc
File size: 5586 byte(s)
-added systemd unit functions
1 | niro | 1 | # $Header: /magellan-cvs/mage/include/mtools.minc,v 1.3 2008/02/10 12:13:56 niro Exp $ |
2 | |||
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 | [[ -z ${service_exec} ]] && service_exec="$(which ${service})" | ||
11 | |||
12 | # add service to default runlevels | ||
13 | niro | 8 | echo -e " ${COLBLUE}[${COLGREEN}+${COLBLUE}]${COLDEFAULT} adding ${service} to default runlevels ..." |
14 | niro | 1 | [[ -x ${MROOT}/etc/rc.d/init.d/${service} ]] && rc-config add ${service} &> /dev/null |
15 | |||
16 | # do not start services on bootstrap or MROOT!=/ | ||
17 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
18 | then | ||
19 | # start service | ||
20 | if [[ -n $(pidof ${service_exec}) ]] | ||
21 | then | ||
22 | # restart service | ||
23 | /etc/init.d/${service} restart | ||
24 | else | ||
25 | # start service | ||
26 | /etc/init.d/${service} start | ||
27 | fi | ||
28 | fi | ||
29 | } | ||
30 | |||
31 | # removes services from runlevels and stops them | ||
32 | # mstopservice service {/path/to/service_exec} | ||
33 | mstopservice() | ||
34 | { | ||
35 | local service="$1" | ||
36 | local service_exec="$2" | ||
37 | |||
38 | [[ -z ${service_exec} ]] && service_exec="$(which ${service} 2> /dev/null)" | ||
39 | |||
40 | # only stop the service if ${service_exec} does not exist | ||
41 | [[ -f ${MROOT}/${service_exec} ]] && return | ||
42 | |||
43 | # del services from runlevel regardless if they exist or not | ||
44 | niro | 8 | echo -e " ${COLBLUE}[${COLRED}-${COLBLUE}]${COLDEFAULT} removing ${service} from default runlevels ..." |
45 | niro | 1 | rc-config del ${service} &> /dev/null |
46 | |||
47 | # do not stop services on bootstrap or MROOT!=/ | ||
48 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
49 | then | ||
50 | # stop service if running | ||
51 | if [[ -n $(pidof ${service_exec}) ]] | ||
52 | then | ||
53 | killall -15 ${service_exec} &> /dev/null | ||
54 | sleep 1 | ||
55 | killall -9 ${service_exec} &> /dev/null | ||
56 | fi | ||
57 | fi | ||
58 | niro | 4 | } |
59 | |||
60 | # reloads a service if already running | ||
61 | # mreloadservice service {/path/to/service_exec} | ||
62 | mreloadservice() | ||
63 | { | ||
64 | local service="$1" | ||
65 | local service_exec="$2" | ||
66 | |||
67 | [[ -z ${service_exec} ]] && service_exec="$(which ${service} 2> /dev/null)" | ||
68 | |||
69 | # do not stop services on bootstrap or MROOT!=/ | ||
70 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
71 | then | ||
72 | # only reload the service if running | ||
73 | if [[ -n $(pidof ${service_exec}) ]] | ||
74 | then | ||
75 | /etc/init.d/${service} reload | ||
76 | fi | ||
77 | fi | ||
78 | } | ||
79 | niro | 16 | |
80 | |||
81 | # adds systemd units to runlevels and starts them | ||
82 | # mstartunit service {/path/to/service_exec} | ||
83 | mstartunit() | ||
84 | { | ||
85 | local service="$1" | ||
86 | local service_exec="$2" | ||
87 | |||
88 | # only run if systemd was found | ||
89 | if [[ ! -x /bin/systemctl ]] | ||
90 | then | ||
91 | echo "systemd not found, not adding unit ${service} to runlevels!" | ||
92 | return | ||
93 | fi | ||
94 | |||
95 | # we do not support $MROOT atm | ||
96 | if [[ ${MROOT} != / ]] || [[ ! -z ${MROOT} ]] | ||
97 | then | ||
98 | echo "\$MROOT is set, doing nothing!" | ||
99 | echo "Please add unit ${service} manually to the runlevels!" | ||
100 | echo "Run 'systemctl enable ${service}' in your chroot later on." | ||
101 | return | ||
102 | fi | ||
103 | |||
104 | [[ -z ${service_exec} ]] && service_exec="$(which ${service})" | ||
105 | |||
106 | # add service to default runlevels | ||
107 | echo -e " ${COLBLUE}[${COLGREEN}+${COLBLUE}]${COLDEFAULT} adding unit ${service} to default runlevels ..." | ||
108 | # reload daemon to honor changed unit files | ||
109 | systemctl daemon-reload | ||
110 | systemctl enable ${service} | ||
111 | |||
112 | # do not start services on bootstrap or MROOT!=/ | ||
113 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
114 | then | ||
115 | # start or restart the service | ||
116 | systemctl try-restart ${service} | ||
117 | fi | ||
118 | } | ||
119 | |||
120 | # removes systemd units from runlevels and stops them | ||
121 | # mstopunit service {/path/to/service_exec} | ||
122 | mstopunit() | ||
123 | { | ||
124 | local service="$1" | ||
125 | local service_exec="$2" | ||
126 | |||
127 | # only run if systemd was found | ||
128 | if [[ ! -x /bin/systemctl ]] | ||
129 | then | ||
130 | echo "systemd not found, not removing unit ${service} from runlevels!" | ||
131 | return | ||
132 | fi | ||
133 | |||
134 | # we do not support $MROOT atm | ||
135 | if [[ ${MROOT} != / ]] || [[ ! -z ${MROOT} ]] | ||
136 | then | ||
137 | echo "\$MROOT is set, doing nothing!" | ||
138 | echo "Please remove unit ${service} manually from the runlevels!" | ||
139 | echo "Run 'systemctl disable ${service}' in your chroot later on." | ||
140 | return | ||
141 | fi | ||
142 | |||
143 | [[ -z ${service_exec} ]] && service_exec="$(which ${service} 2> /dev/null)" | ||
144 | |||
145 | # only stop the service if ${service_exec} does not exist | ||
146 | [[ -f ${MROOT}/${service_exec} ]] && return | ||
147 | |||
148 | # del services from runlevel regardless if they exist or not | ||
149 | echo -e " ${COLBLUE}[${COLRED}-${COLBLUE}]${COLDEFAULT} removing unit ${service} from default runlevels ..." | ||
150 | # reload daemon to honor changed unit files | ||
151 | systemctl daemon-reload | ||
152 | systemctl disable ${service} | ||
153 | |||
154 | # do not stop services on bootstrap or MROOT!=/ | ||
155 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
156 | then | ||
157 | systemctl stop ${service} | ||
158 | # try harder | ||
159 | if [[ -n $(pidof ${service_exec}) ]] | ||
160 | then | ||
161 | killall -15 ${service_exec} &> /dev/null | ||
162 | sleep 1 | ||
163 | killall -9 ${service_exec} &> /dev/null | ||
164 | fi | ||
165 | fi | ||
166 | } | ||
167 | |||
168 | # reloads a systemd unit if already running | ||
169 | # mreloadunit service {/path/to/service_exec} | ||
170 | mreloadunit() | ||
171 | { | ||
172 | local service="$1" | ||
173 | local service_exec="$2" | ||
174 | |||
175 | # only run if systemd was found | ||
176 | if [[ ! -x /bin/systemctl ]] | ||
177 | then | ||
178 | echo "systemd not found, not removing unit ${service} from runlevels!" | ||
179 | return | ||
180 | fi | ||
181 | |||
182 | # we do not support $MROOT atm | ||
183 | if [[ ${MROOT} != / ]] || [[ ! -z ${MROOT} ]] | ||
184 | then | ||
185 | echo "\$MROOT is set, doing nothing!" | ||
186 | echo "Please remove unit ${service} manually from the runlevels!" | ||
187 | echo "Run 'systemctl disable ${service}' in your chroot later on." | ||
188 | return | ||
189 | fi | ||
190 | |||
191 | [[ -z ${service_exec} ]] && service_exec="$(which ${service} 2> /dev/null)" | ||
192 | |||
193 | # do not stop services on bootstrap or MROOT!=/ | ||
194 | if [[ ${MAGE_BOOTSTRAP} != true ]] && [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] | ||
195 | then | ||
196 | # only reload the service if running | ||
197 | systemctl reload-or-try-restart ${service} | ||
198 | fi | ||
199 | } |