jobqueue.pl 2.6 KB
Newer Older
1
#!/usr/bin/perl
2 3 4
# 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/.
5
#
6 7
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
8

9
use 5.10.1;
10
use strict;
11
use warnings;
12 13

use Cwd qw(abs_path);
14
use File::Basename;
15

16
BEGIN {
17 18 19
  # Untaint the abs_path.
  my ($a) = abs_path($0) =~ /^(.*)$/;
  chdir dirname($a);
20
}
21 22 23 24 25 26 27 28 29 30 31 32 33

use lib qw(. lib);
use Bugzilla;
use Bugzilla::JobQueue::Runner;

Bugzilla::JobQueue::Runner->new();

=head1 NAME

jobqueue.pl - Runs jobs in the background for Bugzilla.

=head1 SYNOPSIS

34
 ./jobqueue.pl [OPTIONS] COMMAND
35

36
   OPTIONS:
37 38
   -f        Run in the foreground (don't detach)
   -d        Output a lot of debugging information
39 40 41 42 43 44
   -p file   Specify the file where jobqueue.pl should store its current
             process id. Defaults to F<data/jobqueue.pl.pid>.
   -n name   What should this process call itself in the system log?
             Defaults to the full path you used to invoke the script.

   COMMANDS:
45
   start     Starts a new jobqueue daemon if there isn't one running already
46
   stop      Stops a running jobqueue daemon
47 48
   restart   Stops a running jobqueue if one is running, and then
             starts a new one.
49
   once      Checks the job queue once, executes the first item found (if
50
             any, up to a limit of 1000 items) and then exits
51
   onepass   Checks the job queue, executes all items found, and then exits
52
   check     Report the current status of the daemon.
53 54 55 56
   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.
57
   help      Display this usage info
58 59 60 61 62
   version   Display the version of jobqueue.pl

=head1 DESCRIPTION

See L<Bugzilla::JobQueue> and L<Bugzilla::JobQueue::Runner>.
63 64 65 66 67 68 69 70 71 72 73 74 75 76

=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<contrib/bugzilla-queue>.
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<checksetup> 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<contrib/bugzilla-queue> and install it yourself
manually in order to get C<jobqueue.pl> running as a system service.