From d96e1c521f5352cc202c37dfa846b9d4a088550c Mon Sep 17 00:00:00 2001 From: Marco van Wieringen Date: Fri, 29 Apr 2011 21:32:54 +0200 Subject: [PATCH] Cleanup Solaris init scripts and made them zone aware. Some cleanups to the option parsing added in previous patch. Added support for checking if we run on a Solaris 10 or later global zone where using pkill -x is kind of dangerous as we kill all bacula processes also in non-global zones. --- bacula/platforms/solaris/bacula-dir.in | 28 ++++++++++++++++++-------- bacula/platforms/solaris/bacula-fd.in | 28 ++++++++++++++++++-------- bacula/platforms/solaris/bacula-sd.in | 28 ++++++++++++++++++-------- 3 files changed, 60 insertions(+), 24 deletions(-) diff --git a/bacula/platforms/solaris/bacula-dir.in b/bacula/platforms/solaris/bacula-dir.in index c5a3a93c32..c7105a32ff 100755 --- a/bacula/platforms/solaris/bacula-dir.in +++ b/bacula/platforms/solaris/bacula-dir.in @@ -1,12 +1,11 @@ -#! /bin/sh +#!/bin/sh # # bacula This shell script takes care of starting and stopping # the bacula Director daemon # -# chkconfig: 2345 92 9 # description: The Leading Open Source Backup Solution. # -# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ # DIR_USER=@dir_user@ @@ -16,11 +15,13 @@ DIR_OPTIONS='' RETVAL=0 case "$1" in start) - if [ "${DIR_USER}" != '' ]; then - DIR_OPTIONS="${DIR_OPTIONS} -u ${DIR_USER}" + if [ ! -z "${DIR_USER}" ]; then + [ -z "${DIR_OPTIONS}" ] && DIR_OPTIONS="-u ${DIR_USER}" || \ + DIR_OPTIONS="${DIR_OPTIONS} -u ${DIR_USER}" fi - if [ "${DIR_GROUP}" != '' ]; then - DIR_OPTIONS="${DIR_OPTIONS} -g ${DIR_GROUP}" + if [ ! -z "${DIR_GROUP}" ]; then + [ -z "${DIR_OPTIONS}" ] && DIR_OPTIONS="-g ${DIR_GROUP}" || \ + DIR_OPTIONS="${DIR_OPTIONS} -g ${DIR_GROUP}" fi echo "Starting the Bacula Director: " @@ -28,7 +29,18 @@ case "$1" in ;; stop) echo "Stopping the Director daemon: " - pkill -x bacula-dir + if [ -x /usr/bin/zonename ]; then + case `/usr/bin/zonename` in + global) + pkill -z global -x bacula-dir + ;; + *) + pkill -x bacula-dir + ;; + esac + else + pkill -x bacula-dir + fi ;; restart) $0 stop diff --git a/bacula/platforms/solaris/bacula-fd.in b/bacula/platforms/solaris/bacula-fd.in index eeca38d537..a9eb2044b1 100755 --- a/bacula/platforms/solaris/bacula-fd.in +++ b/bacula/platforms/solaris/bacula-fd.in @@ -1,12 +1,11 @@ -#! /bin/sh +#!/bin/sh # # bacula This shell script takes care of starting and stopping # the bacula File daemon. # -# chkconfig: 2345 91 9 # description: The Leading Open Source Backup Solution. # -# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ # FD_USER=@fd_user@ @@ -15,11 +14,13 @@ FD_OPTIONS='' case "$1" in start) - if [ "${FD_USER}" != '' ]; then - FD_OPTIONS="${FD_OPTIONS} -u ${FD_USER}" + if [ ! -z "${DIR_USER}" ]; then + [ -z "${DIR_OPTIONS}" ] && DIR_OPTIONS="-u ${DIR_USER}" || \ + DIR_OPTIONS="${DIR_OPTIONS} -u ${DIR_USER}" fi - if [ "${FD_GROUP}" != '' ]; then - FD_OPTIONS="${FD_OPTIONS} -g ${FD_GROUP}" + if [ ! -z "${DIR_GROUP}" ]; then + [ -z "${DIR_OPTIONS}" ] && DIR_OPTIONS="-g ${DIR_GROUP}" || \ + DIR_OPTIONS="${DIR_OPTIONS} -g ${DIR_GROUP}" fi echo "Starting the Bacula File daemon: " @@ -27,7 +28,18 @@ case "$1" in ;; stop) echo "Stopping the Bacula File daemon: " - pkill -x bacula-fd + if [ -x /usr/bin/zonename ]; then + case `/usr/bin/zonename` in + global) + pkill -z global -x bacula-fd + ;; + *) + pkill -x bacula-fd + ;; + esac + else + pkill -x bacula-fd + fi ;; restart) $0 stop diff --git a/bacula/platforms/solaris/bacula-sd.in b/bacula/platforms/solaris/bacula-sd.in index c547697066..752579e1cb 100755 --- a/bacula/platforms/solaris/bacula-sd.in +++ b/bacula/platforms/solaris/bacula-sd.in @@ -1,12 +1,11 @@ -#! /bin/sh +#!/bin/sh # # bacula This shell script takes care of starting and stopping # the bacula Storage daemon. # -# chkconfig: 2345 90 9 # description: The Leading Open Source Backup Solution. # -# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ +# For Bacula release @VERSION@ (@DATE@) -- @DISTNAME@ # SD_USER=@sd_user@ @@ -15,11 +14,13 @@ SD_OPTIONS='' case "$1" in start) - if [ "${SD_USER}" != '' ]; then - SD_OPTIONS="${SD_OPTIONS} -u ${SD_USER}" + if [ ! -z "${DIR_USER}" ]; then + [ -z "${DIR_OPTIONS}" ] && DIR_OPTIONS="-u ${DIR_USER}" || \ + DIR_OPTIONS="${DIR_OPTIONS} -u ${DIR_USER}" fi - if [ "${SD_GROUP}" != '' ]; then - SD_OPTIONS="${SD_OPTIONS} -g ${SD_GROUP}" + if [ ! -z "${DIR_GROUP}" ]; then + [ -z "${DIR_OPTIONS}" ] && DIR_OPTIONS="-g ${DIR_GROUP}" || \ + DIR_OPTIONS="${DIR_OPTIONS} -g ${DIR_GROUP}" fi echo "Starting the Bacula Storage daemon: " @@ -27,7 +28,18 @@ case "$1" in ;; stop) echo "Stopping the Bacula Storage daemon: " - pkill -x bacula-sd + if [ -x /usr/bin/zonename ]; then + case `/usr/bin/zonename` in + global) + pkill -z global -x bacula-sd + ;; + *) + pkill -x bacula-sd + ;; + esac + else + pkill -x bacula-sd + fi ;; restart) $0 stop -- 2.39.5