--- layout: project title: queued short: queued commentIssueId: 4 description: Daemon for starting jobs to queue of calculations hasgui: false developers: - Evgeniy Alelseev license: GPLv3 links: ---

## Information

Daemon for starting jobs to queue of calculations. It was written as proof-of-concept.

    $ queued --help
    Simple daemon written on BASH for starting jobs to queue of calculations

    Usage: queued [ -c /etc/queued.conf ] [ -v | --version ] [ -h | --help ]
    Parametrs:
      -c               PATH     - path to configuration file. Default is '/etc/queued.conf'

      -v   --version            - show version and exit
      -h   --help               - show this help and exit

    $ add_queued --help
    add_queued [ -c /etc/queued.conf ] [ -p NUM ] [ -u USER ] [ -h | --help ] /path/to/script

    Parameters:
        -c               PATH     - path to configuration file. Default is '/etc/queued.conf'
        -p               NUM      - job priority
        -u               USER     - username
        -h   --help               - show this help and exit

### Developers and contributors

{% for devel in page.developers %}
- {{ devel }}
{% endfor %}

### License

- {{ page.license }}

## Installation

### Instruction

- Download an archive with latest version of source files.

- Extract it and install the application:

      ./install.sh "/path/to/root/"

  If you want install it to `/` you must run it as root, e.g.:

      sudo ./install.sh

  If no path is specified it will be installed to `/` by default.

### Dependencies

I want note that all were tested on latest version of dependencies.

- Bash (including awk, grep, sed)
- systemd (optional, service file)

## How to use

If you want to start the daemon just run

    systemctl start queued

If you want to enable daemon autoload run

    systemctl enable queued

But you may change path to configuration file or change parameters. To do it just copy (recommended) the source configuration file to new path

    cp /etc/queued.conf /path/to/new/queued.conf

and edit it. Then copy the source service file to `/etc`:

    cp /usr/lib/systemd/system/queued.service /etc/systemd/system/queued-my-profile.service

Replace following string in the file:

    ExecStart=/usr/bin/queued

to

    ExecStart=/usr/bin/queued -c /path/to/new/queued.conf

### Adding a job

1. Create shell script with the command (e.g. it have a name `script.sh`).
2. Create priority file (`script.sh.pr`) with the job priority if it is needed.
3. Create user file (`script.sh.user`) with the job username if it is needed.
4. Copy files to `$WORKDIR`.

Also you may use `add_queued`.

## Configuration

All settings are stored in `/etc/queued.conf`. After edit them you must restart daemon

    systemctl restart queued

### Options

WORKDIR | Full path to directory with source jobs. Default is `/var/lib/queued/work`. This directory must contain source scripts `script-name`, a priority file (it is not necessary) `script-name.pr` and a file with username (it is not necessary too) `script-name.user`.
JOBDIR | Full path to directory with running jobs. Default is `/var/lib/queued/job`. All job files will be moved here.
QUEUEFILE | Full path to file with queue list. Default is `/var/lib/queued/queue`.
PRIORITY | Default priority. Default is `0`. The higher the value, the higher the priority of the task.
SLEEPTIME | Time interval in minutes. Default is `5`.
STARTASUSER | Default user. Default is `root`. This user will own created files.