From 4095f06769a8fb3ce0878209508a6f129b099d91 Mon Sep 17 00:00:00 2001 From: Kent Rogers Date: Wed, 19 May 2010 10:15:41 -0700 Subject: Bug 563641: Make bugzilla-queue init script support SuSE r=mkanat, a=mkanat --- contrib/bugzilla-queue | 109 --------------------------- contrib/bugzilla-queue.rhel | 109 +++++++++++++++++++++++++++ contrib/bugzilla-queue.suse | 174 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 283 insertions(+), 109 deletions(-) delete mode 100755 contrib/bugzilla-queue create mode 100755 contrib/bugzilla-queue.rhel create mode 100644 contrib/bugzilla-queue.suse (limited to 'contrib') diff --git a/contrib/bugzilla-queue b/contrib/bugzilla-queue deleted file mode 100755 index 3e00cce24..000000000 --- a/contrib/bugzilla-queue +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/bash -# -# bugzilla-queue This starts, stops, and restarts the Bugzilla jobqueue.pl -# daemon, which manages sending queued mail and possibly -# other queued tasks in the future. -# -# chkconfig: 345 85 15 -# description: Bugzilla queue runner -# -### BEGIN INIT INFO -# Provides: bugzilla-queue -# Required-Start: $local_fs $syslog MTA mysqld -# Required-Stop: $local_fs $syslog MTA mysqld -# Default-Start: 3 5 -# Default-Stop: 0 1 2 6 -# Short-Description: Start and stop the Bugzilla queue runner. -# Description: The Bugzilla queue runner (jobqueue.pl) sends any mail -# that Bugzilla has queued to be sent in the background. If you -# have enabled the use_mailer_queue parameter in Bugzilla, you -# must run this daemon. -### END INIT INFO - -NAME=`basename $0` - -################# -# Configuration # -################# - -# This should be the path to your Bugzilla -BUGZILLA=/var/www/html/bugzilla -# Who owns the Bugzilla directory and files? -USER=root - -# If you want to pass any options to the daemon (like -d for debugging) -# specify it here. -OPTIONS="" - -# You can also override the configuration by creating a -# /etc/sysconfig/bugzilla-queue file so that you don't -# have to edit this script. -if [ -r /etc/sysconfig/$NAME ]; then - . /etc/sysconfig/$NAME -fi - -########## -# Script # -########## - -RETVAL=0 -BIN=$BUGZILLA/jobqueue.pl -PIDFILE=/var/run/$NAME.pid - -# Source function library. -. /etc/rc.d/init.d/functions - -usage () -{ - echo "Usage: service $NAME {start|stop|status|restart|condrestart}" - RETVAL=1 -} - - -start () -{ - if [ -f "$PIDFILE" ]; then - checkpid `cat $PIDFILE` && return 0 - fi - echo -n "Starting $NAME: " - touch $PIDFILE - chown $USER $PIDFILE - daemon --user=$USER \ - "$BIN ${OPTIONS} -p '$PIDFILE' -n $NAME start > /dev/null" - ret=$? - [ $ret -eq "0" ] && touch /var/lock/subsys/$NAME - echo - return $ret -} - -stop () -{ - [ -f /var/lock/subsys/$NAME ] || return 0 - echo -n "Killing $NAME: " - killproc $NAME - echo - rm -f /var/lock/subsys/$NAME -} - -restart () -{ - stop - start -} - -condrestart () -{ - [ -e /var/lock/subsys/$NAME ] && restart || return 0 -} - - -case "$1" in - start) start; RETVAL=$? ;; - stop) stop; RETVAL=$? ;; - status) $BIN -p $PIDFILE -n $NAME check; RETVAL=$?;; - restart) restart; RETVAL=$? ;; - condrestart) condrestart; RETVAL=$? ;; - *) usage ; RETVAL=2 ;; -esac - -exit $RETVAL diff --git a/contrib/bugzilla-queue.rhel b/contrib/bugzilla-queue.rhel new file mode 100755 index 000000000..3e00cce24 --- /dev/null +++ b/contrib/bugzilla-queue.rhel @@ -0,0 +1,109 @@ +#!/bin/bash +# +# bugzilla-queue This starts, stops, and restarts the Bugzilla jobqueue.pl +# daemon, which manages sending queued mail and possibly +# other queued tasks in the future. +# +# chkconfig: 345 85 15 +# description: Bugzilla queue runner +# +### BEGIN INIT INFO +# Provides: bugzilla-queue +# Required-Start: $local_fs $syslog MTA mysqld +# Required-Stop: $local_fs $syslog MTA mysqld +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Start and stop the Bugzilla queue runner. +# Description: The Bugzilla queue runner (jobqueue.pl) sends any mail +# that Bugzilla has queued to be sent in the background. If you +# have enabled the use_mailer_queue parameter in Bugzilla, you +# must run this daemon. +### END INIT INFO + +NAME=`basename $0` + +################# +# Configuration # +################# + +# This should be the path to your Bugzilla +BUGZILLA=/var/www/html/bugzilla +# Who owns the Bugzilla directory and files? +USER=root + +# If you want to pass any options to the daemon (like -d for debugging) +# specify it here. +OPTIONS="" + +# You can also override the configuration by creating a +# /etc/sysconfig/bugzilla-queue file so that you don't +# have to edit this script. +if [ -r /etc/sysconfig/$NAME ]; then + . /etc/sysconfig/$NAME +fi + +########## +# Script # +########## + +RETVAL=0 +BIN=$BUGZILLA/jobqueue.pl +PIDFILE=/var/run/$NAME.pid + +# Source function library. +. /etc/rc.d/init.d/functions + +usage () +{ + echo "Usage: service $NAME {start|stop|status|restart|condrestart}" + RETVAL=1 +} + + +start () +{ + if [ -f "$PIDFILE" ]; then + checkpid `cat $PIDFILE` && return 0 + fi + echo -n "Starting $NAME: " + touch $PIDFILE + chown $USER $PIDFILE + daemon --user=$USER \ + "$BIN ${OPTIONS} -p '$PIDFILE' -n $NAME start > /dev/null" + ret=$? + [ $ret -eq "0" ] && touch /var/lock/subsys/$NAME + echo + return $ret +} + +stop () +{ + [ -f /var/lock/subsys/$NAME ] || return 0 + echo -n "Killing $NAME: " + killproc $NAME + echo + rm -f /var/lock/subsys/$NAME +} + +restart () +{ + stop + start +} + +condrestart () +{ + [ -e /var/lock/subsys/$NAME ] && restart || return 0 +} + + +case "$1" in + start) start; RETVAL=$? ;; + stop) stop; RETVAL=$? ;; + status) $BIN -p $PIDFILE -n $NAME check; RETVAL=$?;; + restart) restart; RETVAL=$? ;; + condrestart) condrestart; RETVAL=$? ;; + *) usage ; RETVAL=2 ;; +esac + +exit $RETVAL diff --git a/contrib/bugzilla-queue.suse b/contrib/bugzilla-queue.suse new file mode 100644 index 000000000..356302058 --- /dev/null +++ b/contrib/bugzilla-queue.suse @@ -0,0 +1,174 @@ +#!/bin/bash +# +# bugzilla-queue This starts, stops, and restarts the Bugzilla jobqueue.pl +# daemon, which manages sending queued mail and possibly +# other queued tasks in the future. +# +# chkconfig: 345 85 15 +# description: Bugzilla queue runner +# +### BEGIN INIT INFO +# Provides: bugzilla-queue +# Required-Start: $local_fs $syslog +# Required-Stop: $local_fs $syslog +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Start and stop the Bugzilla queue runner. +# Description: The Bugzilla queue runner (jobqueue.pl) sends any mail +# that Bugzilla has queued to be sent in the background. If you +# have enabled the use_mailer_queue parameter in Bugzilla, you +# must run this daemon. +### END INIT INFO + +NAME=`basename $0` + +################# +# Configuration # +################# + +# This should be the path to your Bugzilla +BUGZILLA=/var/www/html/bugzilla +# Who owns the Bugzilla directory and files? +USER=root + +# If you want to pass any options to the daemon (like -d for debugging) +# specify it here. +OPTIONS="" + +# You can also override the configuration by creating a +# /etc/sysconfig/bugzilla-queue file so that you don't +# have to edit this script. +if [ -r /etc/sysconfig/$NAME ]; then + . /etc/sysconfig/$NAME +fi + +########## +# Script # +########## + +BIN=$BUGZILLA/jobqueue.pl +if [ ! -x $BIN ]; then + echo "$BIN not installed" + if [ "$1" = "stop" ]; then + exit 0 + else + exit 5 + fi +fi + +# Source LSB function library. +. /lib/lsb/init-functions + +# Reset status of this service. +rc_reset + +# Return values for all commands but status: +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - user had insufficient privileges +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running +# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signaling is not supported) are +# considered a success. + +case "$1" in + start) + echo -n "Starting $NAME " + # Start daemon with startproc(8). If this fails the return value + # is set appropriately by startproc. + start_daemon -u $USER $BIN ${OPTIONS} start + + # Remember status and be verbose + rc_status -v + ;; + + stop) + echo -n "Shutting down $NAME " + # Stop daemon with killproc(8) and if this fails killproc sets the + # return value according to LSB. + killproc -TERM $BIN + + # Remember status and be verbose + rc_status -v + ;; + + status) + echo -n "Checking for service $NAME " + # Check status with checkproc(8), if process is running checkproc + # will return with exit status 0. + + # Return value is slightly different for the status command: + # 0 - service up and running + # 1 - service dead, but /var/run/ pid file exists + # 2 - service dead, but /var/lock/ lock file exists + # 3 - service not running (unused) + # 4 - service status unknown :-( + # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.) + + # NOTE: checkproc returns LSB compliant status values. + checkproc $BIN + + # NOTE: rc_status knows that we called this init script with + # "status" option and adapts its messages accordingly. + rc_status -v + + # Run jobqueue's own check function too. + $BIN check + ;; + + restart) + # Stop the service and regardless of whether it was running or not, + # start it again. + $0 stop + $0 start + + # Remember status and be quiet. + rc_status + ;; + + try-restart|condrestart) + # Do a restart only if the service was active before. + # NOTE: try-restart is now part of LSB (as of 1.9). RH has a + # similar command named condrestart. + if [ "$1" = "condrestart" ]; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if [ $? -eq 0 ]; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + + # Remember status and be quiet + rc_status + ;; + + force-reload) + # The jobqueue.pl daemon does not support SIGHUP for reload. Just + # restart the service if it is running. + echo -n "Reload service $NAME " + + $0 try-restart + rc_status + ;; + + reload) + # The jobqueue.pl daemon does not support SIGHUP for reload. + rc_failed 3 + rc_status -v + ;; + + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}" + exit 1 +esac + +rc_exit -- cgit v1.2.3-24-g4f1b