#!/usr/bin/perl # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # This Source Code Form is "Incompatible With Secondary Licenses", as # defined by the Mozilla Public License, v. 2.0. use 5.10.1; use strict; use warnings; use File::Basename qw(dirname); use File::Spec::Functions qw(catdir rel2abs); BEGIN { require lib; my $dir = rel2abs( dirname(__FILE__) ); lib->import( $dir, catdir( $dir, 'lib' ), catdir( $dir, qw(local lib perl5) ) ); chdir $dir or die "chdir $dir failed: $!"; } use Bugzilla; use Bugzilla::JobQueue::Runner; Bugzilla::JobQueue::Runner->new(); =head1 NAME jobqueue.pl - Runs jobs in the background for Bugzilla. =head1 SYNOPSIS ./jobqueue.pl [OPTIONS] COMMAND OPTIONS: -f Run in the foreground (don't detach) -d Output a lot of debugging information -p file Specify the file where jobqueue.pl should store its current process id. Defaults to F. -n name What should this process call itself in the system log? Defaults to the full path you used to invoke the script. -j jobs How many child processes should be run? Defaults to 1. COMMANDS: start Starts a new jobqueue daemon if there isn't one running already stop Stops a running jobqueue daemon restart Stops a running jobqueue if one is running, and then starts a new one. once Checks the job queue once, executes the first item found (if any) and then exits check Report the current status of the daemon. install On some *nix systems, this automatically installs and configures jobqueue.pl as a system service so that it will start every time the machine boots. uninstall Removes the system service for jobqueue.pl. help Display this usage info version Display the version of jobqueue.pl =head1 DESCRIPTION See L and L. =head1 Running jobqueue.pl as a System Service For systems that use Upstart or SysV Init, there is a SysV/Upstart init script included with Bugzilla for jobqueue.pl: F. It should work out-of-the-box on RHEL, Fedora, CentOS etc. You can install it by doing C<./jobqueue.pl install> as root, after already having run L at least once to completion on this Bugzilla installation. If you are using a system that isn't RHEL, Fedora, CentOS, etc., then you may have to modify F and install it yourself manually in order to get C running as a system service.