#! /bin/sh
#
+# Copyright (C) 2000-2015 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
# bacula This shell script takes care of starting and stopping
-# the bacula daemons.
+# the bacula daemons.
#
# 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.
RC=0
# Test syntax.
if [ $# = 0 ]; then
- echo "Usage: killproc {program} [signal]"
- return 1
+ echo "Usage: killproc {program} [signal]"
+ return 1
fi
notset=0
# check for third arg to be kill level
if [ "$3" != "" ] ; then
- killlevel=$3
+ killlevel=$3
else
- notset=1
- killlevel="-9"
+ notset=1
+ killlevel="-9"
fi
# Get base program name
# 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
+ 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"
+ failure "$base shutdown"
fi
# Remove pid file if any.
if [ "$notset" = "1" ]; then
- rm -f ${PIDDIR}/$base.$2.pid
+ rm -f ${PIDDIR}/$base.$2.pid
fi
return $RC
}
pid=""
# Test syntax.
if [ $# = 0 ] ; then
- echo "Usage: pidofproc {program}"
- return 1
+ echo "Usage: pidofproc {program}"
+ return 1
fi
# Get base program name
# 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
+ pid=`head -1 ${PIDDIR}/$base.$2.pid`
+ if [ "$pid" != "" ] ; then
+ echo $pid
+ return 0
+ fi
fi
# Next try "pidof"
status() {
# Test syntax.
if [ $# = 0 ] ; then
- echo "Usage: status {program}"
- return 1
+ echo "Usage: status {program}"
+ return 1
fi
# Get base program name
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 ((prog == $2) || (("(" prog ")") == $2) ||
+ (("[" prog "]") == $2) ||
+ ((prog ":") == $2)) { print $1 ; exit 0 } }' $1`
if [ "$pid" != "" ] ; then
- echo "$base (pid $pid) is running..."
- return 0
+ 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 not running, but pid file exists"
- return 1
- fi
+ pid=`head -1 ${PIDDIR}/$base.$2.pid`
+ if [ "$pid" != "" ] ; then
+ echo "$base not running, but pid file exists"
+ return 1
+ fi
fi
# See if the subsys lock exists
if [ -f ${SUBSYSDIR}/$base ] ; then
- echo "$base not running, but subsys locked"
- return 2
+ echo "$base not running, but subsys locked"
+ return 2
fi
echo "$base is stopped"
return 3