summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/JobQueue/Runner.pm9
-rwxr-xr-xcontrib/bugzilla-queue.rhel (renamed from contrib/bugzilla-queue)0
-rw-r--r--contrib/bugzilla-queue.suse174
3 files changed, 181 insertions, 2 deletions
diff --git a/Bugzilla/JobQueue/Runner.pm b/Bugzilla/JobQueue/Runner.pm
index ef1bb8ef9..8cfc965eb 100644
--- a/Bugzilla/JobQueue/Runner.pm
+++ b/Bugzilla/JobQueue/Runner.pm
@@ -39,7 +39,7 @@ BEGIN { eval "use base qw(Daemon::Generic)"; }
our $VERSION = BUGZILLA_VERSION;
-# Info we need to install/uninstall the daemon on RHEL/Fedora.
+# Info we need to install/uninstall the daemon.
our $chkconfig = "/sbin/chkconfig";
our $initd = "/etc/init.d";
our $initscript = "bugzilla-queue";
@@ -102,7 +102,12 @@ sub gd_usage {
sub gd_can_install {
my $self = shift;
- my $source_file = "contrib/$initscript";
+ my $source_file;
+ if ( -e "/etc/SuSE-release" ) {
+ $source_file = "contrib/$initscript.suse";
+ } else {
+ $source_file = "contrib/$initscript.rhel";
+ }
my $dest_file = "$initd/$initscript";
my $sysconfig = '/etc/sysconfig';
my $config_file = "$sysconfig/$initscript";
diff --git a/contrib/bugzilla-queue b/contrib/bugzilla-queue.rhel
index 3e00cce24..3e00cce24 100755
--- a/contrib/bugzilla-queue
+++ b/contrib/bugzilla-queue.rhel
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