#!/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 Cwd qw(abs_path); use File::Basename; BEGIN { # Untaint the abs_path. my ($a) = abs_path($0) =~ /^(.*)$/; chdir dirname($a); } use lib qw(. lib); use Bugzilla; use Bugzilla::JobQueue::Runner; Bugzilla->set_user(Bugzilla::User->check(Bugzilla->params->{system_user})); 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. --cando name The name of jobs to process. Can be specified multiple times. If not specific, will process all jobs. 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, up to a limit of 1000 items) and then exits onepass Checks the job queue, executes all items found, 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.