--- hastr: true layout: project title: queued short: queued tags: linux, shell, daemon, system hasgui: false hasdocs: false developers: - Evgeniy Alekseev license: GPLv3 links: ---

Information

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

{% highlight bash %} $ 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 {% endhighlight %} {% highlight bash %} $ 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 {% endhighlight %}

Developers and contributors

License

Installation

Instruction

Dependencies

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

How to use

If you want to start the daemon just run

{% highlight bash %} systemctl start queued {% endhighlight %}

If you want to enable daemon autoload run

{% highlight bash %} systemctl enable queued {% endhighlight %}

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

{% highlight bash %} cp /etc/queued.conf /path/to/new/queued.conf {% endhighlight %}

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

{% highlight bash %} cp /usr/lib/systemd/system/queued.service /etc/systemd/system/queued-my-profile.service {% endhighlight %}

Replace following string in the file:

{% highlight bash %} ExecStart=/usr/bin/queued {% endhighlight %}

to

{% highlight bash %} ExecStart=/usr/bin/queued -c /path/to/new/queued.conf {% endhighlight %}

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

{% highlight bash %} systemctl restart queued {% endhighlight %}

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.