diff options
Diffstat (limited to 'contrib/bugzilla-queue.suse')
-rw-r--r-- | contrib/bugzilla-queue.suse | 174 |
1 files changed, 174 insertions, 0 deletions
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 |