]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/scripts/bacula.in
Fix update_postgresql_tables 10 to 11
[bacula/bacula] / bacula / scripts / bacula.in
index f530ba66a376804064e08d6688111b240ddbeb85..02114b63184c4f85e1ce9b7687be05ad2635a059 100755 (executable)
 #   This is pretty much watered down version of the RedHat script
 #   that works on Solaris as well as Linux, but it won't work everywhere.
 #
-# description: It comes by night and sucks the vital essence from your computers.
+# description: The Leading Open Source Backup Solution.
 #
 
-PSCMD="@PSCMD@"
-
-# A function to stop a program.
-killproc() {
-    RC=0
-    # Test syntax.
-    if [ $# = 0 ]; then
-       echo "Usage: killproc {program} [signal]"
-       return 1
-    fi
-
-    notset=0
-    # check for third arg to be kill level
-    if [ "$3" != "" ] ; then
-       killlevel=$3
-    else
-       notset=1
-       killlevel="-9"
-    fi
-
-    # Get base program name
-    base=`basename $1`
-
-    # Find pid.
-    pid=`pidofproc $base $2`
-
-    # Kill it.
-    if [ "$pid" != "" ] ; then
-       if [ "$notset" = "1" ] ; then
-           if ps -p $pid>/dev/null 2>&1; then
-               # TERM first, then KILL if not dead
-               kill -TERM $pid 2>/dev/null
-               sleep 1
-               if ps -p $pid >/dev/null 2>&1 ; then
-                   sleep 1
-                   if ps -p $pid >/dev/null 2>&1 ; then
-                       sleep 3
-                       if ps -p $pid >/dev/null 2>&1 ; then
-                           kill -KILL $pid 2>/dev/null
-                       fi
-                   fi
-               fi
-            fi
-            ps -p $pid >/dev/null 2>&1
-            RC=$?
-            [ $RC -eq 0 ] && failure "$base shutdown" || success "$base shutdown"
-       #    RC=$((! $RC))
-       # use specified level only
-       else
-           if ps -p $pid >/dev/null 2>&1; then
-               kill $killlevel $pid 2>/dev/null
-               RC=$?
-               [ $RC -eq 0 ] && success "$base $killlevel" || failure "$base $killlevel"
-           fi
-       fi
-    else
-       failure "$base shutdown"
-    fi
-    # Remove pid file if any.
-    if [ "$notset" = "1" ]; then
-       rm -f @piddir@/$base.$2.pid
-    fi
-    return $RC
-}
-
-# A function to find the pid of a program.
-pidofproc() {
-    pid=""
-    # Test syntax.
-    if [ $# = 0 ] ; then
-       echo "Usage: pidofproc {program}"
-       return 1
-    fi
-
-    # Get base program name
-    base=`basename $1`
-
-    # First try PID file
-    if [ -f @piddir@/$base.$2.pid ] ; then
-       pid=`head -1 @piddir@/$base.$2.pid`
-       if [ "$pid" != "" ] ; then
-           echo $pid
-           return 0
-       fi
-    fi
-
-    # Next try "pidof"
-   if [ -x /sbin/pidof ] ; then
-       pid=`/sbin/pidof $1`
-   fi
-   if [ "$pid" != "" ] ; then
-       echo $pid
-       return 0
-   fi
-
-    # Finally try to extract it from ps
-    ${PSCMD} | grep $1 | awk '{ print $1 }' | tr '\n' ' '
-    return 0
-}
-
-status() {
-    # Test syntax.
-    if [ $# = 0 ] ; then
-       echo "Usage: status {program}"
-       return 1
-    fi
-
-    # Get base program name
-    base=`basename $1`
-
-   # First try "pidof"
-   if [ -x /sbin/pidof ] ; then
-       pid=`/sbin/pidof $1`
-   fi
-   if [ "$pid" != "" ] ; then
-       echo "$base (pid $pid) is running..."
-       return 0
-   else
-       pid=`${PSCMD} | awk 'BEGIN { prog=ARGV[1]; ARGC=1 } 
-            { if ((prog == $2) || (("(" prog ")") == $2) ||
-                 (("[" prog "]") == $2) ||
-                 ((prog ":") == $2)) { print $1 ; exit 0 } }' $1`
-       if [ "$pid" != "" ] ; then
-          echo "$base (pid $pid) is running..."
-          return 0
-       fi
-   fi
-
-    # Next try the PID files
-    if [ -f @piddir@/$base.$2.pid ] ; then
-       pid=`head -1 @piddir@/$base.$2.pid`
-       if [ "$pid" != "" ] ; then
-           echo "$base dead but pid file exists"
-           return 1
-       fi
-    fi
-    # See if the subsys lock exists
-    if [ -f @subsysdir@/$base ] ; then
-       echo "$base dead but subsys locked"
-       return 2
-    fi
-    echo "$base is stopped"
-    return 3
-}
-
-success() {
-  return 0
-}
-
-failure() {
-  rc=$?
-  return $rc
-}
+# All these are not *really* needed but it makes it
+#  easier to "steal" this code for the development 
+#  environment where they are different.
+#  
+SCRIPTDIR=@scriptdir@
+#
+# Disable Glibc malloc checks, it doesn't help and it keeps from getting
+#   good dumps
+MALLOC_CHECK_=0
+export MALLOC_CHECK_
 
 case "$1" in
-    start)
-       echo "Starting the Storage daemon"
-       @sbindir@/bacula-sd $2 -v -c @sysconfdir@/bacula-sd.conf
-       echo "Starting the File daemon"
-       @sbindir@/bacula-fd $2 -v -c @sysconfdir@/bacula-fd.conf
-       sleep 2
-       echo "Starting the Director daemon"
-       @sbindir@/bacula-dir $2 -v -c @sysconfdir@/bacula-dir.conf
-       ;;
-    stop)
-       echo "Stopping the File daemon"
-       killproc @sbindir@/bacula-fd @fd_port@
-       echo "Stopping the Storage daemon"
-       killproc @sbindir@/bacula-sd @sd_port@
-       echo "Stopping the Director daemon"
-       killproc @sbindir@/bacula-dir @dir_port@
-       echo
-       ;;
-    restart)
-       $0 stop
-       sleep 5
-       $0 start
-       ;;
-    status)
-       status @sbindir@/bacula-sd @sd_port@
-       status @sbindir@/bacula-fd @fd_port@
-       status @sbindir@/bacula-dir @dir_port@
-       ;;
-    *)
-       echo "Usage: $0 {start|stop|restart|status}"
-       exit 1
-       ;;
+   start)
+      [ -x ${SCRIPTDIR}/bacula-ctl-sd ] && ${SCRIPTDIR}/bacula-ctl-sd $1 $2
+      [ -x ${SCRIPTDIR}/bacula-ctl-fd ] && ${SCRIPTDIR}/bacula-ctl-fd $1 $2
+      [ -x ${SCRIPTDIR}/bacula-ctl-dir ] && ${SCRIPTDIR}/bacula-ctl-dir $1 $2
+      ;;
+
+   stop)
+      # Stop the FD first so that SD will fail jobs and update catalog
+      [ -x ${SCRIPTDIR}/bacula-ctl-fd ] && ${SCRIPTDIR}/bacula-ctl-fd $1 $2
+      [ -x ${SCRIPTDIR}/bacula-ctl-sd ] && ${SCRIPTDIR}/bacula-ctl-sd $1 $2
+      [ -x ${SCRIPTDIR}/bacula-ctl-dir ] && ${SCRIPTDIR}/bacula-ctl-dir $1 $2
+      ;;
+
+   restart)
+      $0 stop
+      sleep 2
+      $0 start
+      ;;
+
+   status)
+      [ -x ${SCRIPTDIR}/bacula-ctl-sd ] && ${SCRIPTDIR}/bacula-ctl-sd status
+      [ -x ${SCRIPTDIR}/bacula-ctl-fd ] && ${SCRIPTDIR}/bacula-ctl-fd status
+      [ -x ${SCRIPTDIR}/bacula-ctl-dir ] && ${SCRIPTDIR}/bacula-ctl-dir status
+      ;;
+
+   *)
+      echo "Usage: $0 {start|stop|restart|status}"
+      exit 1
+      ;;
 esac
 exit 0