forked from xapi-project/xen-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
xe-toolstack-restart
executable file
·67 lines (56 loc) · 1.9 KB
/
xe-toolstack-restart
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
#!/bin/bash
# Copyright (c) 2008,2009,2010 Citrix Systems, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation; version 2.1 only. with the special
# exception on linking described in file LICENSE.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
#
FILENAME=`basename $0`
LOCKFILE='/dev/shm/xe_toolstack_restart.lock'
(
flock -x -n 200
if [ "$?" != 0 ]; then
echo "Exiting: cannot lock $LOCKFILE. Is an instance of $0 running already?"
exit 1
fi
echo "Executing $FILENAME"
POOLCONF=`cat @ETCDIR@/pool.conf`
SERVICES="xapi v6d squeezed perfmon xenopsd xenopsd-xc xenopsd-xenlight xenopsd-simulator xenopsd-libvirt xcp-rrdd-plugins xcp-rrdd-gpumon xcp-rrdd xcp-networkd fe forkexecd mpathalert-daemon xapi-storage-script"
TO_RESTART=""
for svc in $SERVICES ; do
# xcp-networkd should be ignored if the do-not-use file exists
if [ $svc == xcp-networkd -a -e /tmp/do-not-use-networkd ] ; then
continue
fi
# mpathalert-daemon isn't in chkconfig, so needs to be handled specially
if [ $svc == mpathalert-daemon -a $POOLCONF == "master" ] ; then
TO_RESTART="$svc $TO_RESTART"
@ETCDIR@/master.d/03-mpathalert-daemon stop
continue
fi
# restart other services only if chkconfig said they were enabled
chkconfig $svc
if [ $? -eq 0 ] ; then
TO_RESTART="$svc $TO_RESTART"
service $svc stop
fi
done
set -e
for svc in $TO_RESTART ; do
# mpathalert-daemon isn't in chkconfig, so needs to be handled specially
if [ $svc == mpathalert-daemon ] ; then
@ETCDIR@/master.d/03-mpathalert-daemon start
continue
fi
service $svc start
done
rm -f $LOCKFILE
echo "done."
)200>$LOCKFILE
exit $?