1#! /bin/sh
2#
3# Copyright (C) 2000-2015 Kern Sibbald
4# License: BSD 2-Clause; see file LICENSE-FOSS
5#
6# bacula       This shell script takes care of starting and stopping
7#	       the bacula Storage daemon.
8#
9# chkconfig: 2345 90 9
10# description: The Leading Open Source Backup Solution.
11#
12#  For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@
13#
14
15# Source function library
16. /etc/rc.d/init.d/functions
17
18DAEMON_OPTIONS=''
19DAEMON_USER=yes
20SD_USER=@sd_user@
21SD_GROUP=@sd_group@
22SD_OPTIONS=''
23OS=`uname -s`
24
25# if /lib/tls exists, force Bacula to use the glibc pthreads instead
26if [ -d "/lib/tls" -a $OS = "Linux" -a `uname -r | cut -c1-3` = "2.4" ] ; then
27     export LD_ASSUME_KERNEL=2.4.19
28fi
29
30# pull in any user defined SD_OPTIONS, SD_USER, SD_GROUP or DAEMON_USER
31[ -f /etc/sysconfig/bacula ] && . /etc/sysconfig/bacula
32
33#
34# Disable Glibc malloc checks, it doesn't help and it keeps from getting
35#   good dumps
36MALLOC_CHECK_=0
37export MALLOC_CHECK_
38
39RETVAL=0
40case "$1" in
41    start)
42       if [ "${SD_USER}" != '' ]; then
43	  SD_OPTIONS="${SD_OPTIONS} -u ${SD_USER}"
44       fi
45
46       if [ "${SD_GROUP}" != '' ]; then
47	  SD_OPTIONS="${SD_OPTIONS} -g ${SD_GROUP}"
48       fi
49
50       if [ "${DAEMON_USER}" != '' -a "${SD_USER}" != '' ]; then
51	  SD_OPTIONS=""
52	  if [ "${SD_GROUP}" != '' ]; then
53	     chown ${SD_USER}:${SD_GROUP} @working_dir@/bacula-sd* 2> /dev/null
54	  else
55	     chown ${SD_USER} @working_dir@/bacula-sd* 2> /dev/null
56	  fi
57	  DAEMON_OPTIONS="--user ${SD_USER}"
58       fi
59
60       echo -n "Starting Bacula Storage services: "
61       daemon $DAEMON_OPTIONS @sbindir@/bacula-sd $2 ${SD_OPTIONS} -c @sysconfdir@/bacula-sd.conf
62       RETVAL=$?
63       echo
64       if [ $RETVAL -eq 0 ]; then
65          touch @subsysdir@/bacula-sd
66          logger -p daemon.info "bacula-sd started" >/dev/null 2>/dev/null
67       fi
68       ;;
69    stop)
70       echo -n "Stopping Bacula Storage services: "
71       killproc @sbindir@/bacula-sd
72       RETVAL=$?
73       echo
74       if [ $RETVAL -eq 0 ]; then
75          rm -f @subsysdir@/bacula-sd
76          logger -p daemon.info "bacula-sd stopped" >/dev/null 2>/dev/null
77       fi
78       ;;
79    restart)
80       $0 stop
81       sleep 5
82       $0 start
83       RETVAL=$?
84       ;;
85    status)
86       status @sbindir@/bacula-sd
87       RETVAL=$?
88       ;;
89    *)
90       echo "Usage: $0 {start|stop|restart|status}"
91       exit 1
92       ;;
93esac
94exit $RETVAL
95