1 |
#!/bin/bash |
2 |
# |
3 |
# bacula-dir This shell script takes care of starting and stopping |
4 |
# the Bacula director service (DIR). |
5 |
# |
6 |
# chkconfig: - 92 09 |
7 |
# description: Bacula is a network client/server based backup program. |
8 |
# processname: bacula-dir |
9 |
# config: /etc/bacula/bacula-dir.conf |
10 |
# pidfile: /var/run/bacula-dir.pid |
11 |
|
12 |
# Source function library. |
13 |
. /etc/rc.d/init.d/functions |
14 |
|
15 |
# Source networking configuration. |
16 |
. /etc/sysconfig/network |
17 |
|
18 |
# Check that networking is up. |
19 |
[ ${NETWORKING} = "no" ] && exit 1 |
20 |
|
21 |
# Defines |
22 |
DESC="Bacula Director services" |
23 |
PROG="bacula-dir" |
24 |
EXEC="/usr/sbin/${PROG}" |
25 |
LOCK="/var/lock/subsys/${PROG}" |
26 |
PIDF="/var/run/${PROG}.pid" |
27 |
CONF="/etc/bacula/${PROG}.conf" |
28 |
|
29 |
# Include config |
30 |
if [ -s /etc/sysconfig/${PROG} ]; then |
31 |
. /etc/sysconfig/${PROG} |
32 |
fi |
33 |
|
34 |
# Check for binaries and configs |
35 |
[ -x ${EXEC} ] || exit 5 |
36 |
[ -f ${CONF} ] || exit 6 |
37 |
|
38 |
# Select correct pthreads |
39 |
if [ -d "/lib/tls" -o -d "/lib64/tls" -a `uname -r | cut -c1-3` = "2.4" ]; then |
40 |
export LD_ASSUME_KERNEL=2.4.19 |
41 |
fi |
42 |
|
43 |
|
44 |
checkcfg() { |
45 |
CONF_OK=0 |
46 |
if ${EXEC} ${DIR_OPTIONS} ${OPTIONS} -t >/dev/null 2>&1; then |
47 |
CONF_OK=1 |
48 |
else |
49 |
RETVAL=$? |
50 |
fi |
51 |
|
52 |
if [ ${CONF_OK} -ne 1 ]; then |
53 |
ERR=`${EXEC} ${DIR_OPTIONS} ${OPTIONS} -t 2>&1 | sed s/\n/\\n/g` |
54 |
|
55 |
if [ `tty` != "/dev/console" ]; then |
56 |
echo -e "\n${ERR}" |
57 |
echo -n $"Error in configuration file ${CONF}: " |
58 |
fi |
59 |
|
60 |
failure $"Error in configuration file ${CONF}: ${ERR}" |
61 |
echo |
62 |
exit ${RETVAL} |
63 |
fi |
64 |
} |
65 |
|
66 |
start() { |
67 |
# Start daemons. |
68 |
echo -n $"Starting ${DESC}: " |
69 |
checkcfg |
70 |
|
71 |
daemon ${EXEC} ${DIR_OPTIONS} ${OPTIONS} |
72 |
RETVAL=$? |
73 |
|
74 |
[ ${RETVAL} -eq 0 ] && touch ${LOCK} |
75 |
echo |
76 |
return ${RETVAL} |
77 |
} |
78 |
|
79 |
stop() { |
80 |
# Stop daemons. |
81 |
echo -n $"Shutting down ${DESC}: " |
82 |
killproc ${PROG} |
83 |
RETVAL=$? |
84 |
|
85 |
[ ${RETVAL} -eq 0 ] && rm -f ${LOCK} |
86 |
echo |
87 |
return ${RETVAL} |
88 |
} |
89 |
|
90 |
restart() { |
91 |
stop |
92 |
sleep 2 |
93 |
start |
94 |
} |
95 |
|
96 |
force_reload() { |
97 |
restart |
98 |
} |
99 |
|
100 |
rh_status() { |
101 |
status ${PROG} |
102 |
} |
103 |
|
104 |
rh_status_q() { |
105 |
rh_status >/dev/null 2>&1 |
106 |
} |
107 |
|
108 |
|
109 |
# See how we were called. |
110 |
case "${1}" in |
111 |
start) |
112 |
rh_status_q && exit 0 |
113 |
${1} |
114 |
;; |
115 |
stop) |
116 |
rh_status_q || exit 0 |
117 |
${1} |
118 |
;; |
119 |
restart) |
120 |
${1} |
121 |
;; |
122 |
force-reload) |
123 |
force_reload |
124 |
;; |
125 |
status) |
126 |
rh_status |
127 |
;; |
128 |
condrestart|try-restart) |
129 |
rh_status_q || exit 0 |
130 |
restart |
131 |
;; |
132 |
*) |
133 |
echo $"Usage: ${PROG} {start|stop|status|restart|try-restart|force-reload}" |
134 |
exit 2 |
135 |
esac |
136 |
exit ${?} |