--- permalink: ru/projects/queued category: ru hastr: true layout: project title: queued short: queued tags: linux, shell, демон, система hasgui: false hasdocs: false developers: - Evgeniy Alekseev license: GPLv3 links: --- Демон для запуска задач в очередь вычислений. Был создан, как proof-of-concept. ```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 ``` ```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 ``` ### Разработчики {% for devel in page.developers %} * {{ devel }}{% endfor %} ### Лицензия * {{ page.license }} ## Установка ### Инструкция * Скачайте [архив](//github.com/arcan1s/queued/releases "GitHub") с актуальной версией исходных файлов. * Извлеките из него файлы и установите приложение: ```bash ./install.sh "/путь/к/корню/" ``` Если Вы хотите установить в `/`, Вы должны запустить это, как root: ```bash sudo ./install.sh ``` Если путь не указан, пакет будет установлен в `/`. ### Зависимости Все было протестировано на последних версиях зависимостей. * Bash (включая awk, grep, sed) * systemd *(опционально, service-файл)* ## Использование Если Вы хотите запустить демон, просто запустите ```bash systemctl start queued ``` Если Вы хотите включить автозагрузку демона, запутите ```bash systemctl enable queued ``` Но Вы можете изменить путь к конфигурационному файлу или изменить параметры. Для этого, скопируйте (рекомендуется) исходный конфигурационный файл ```bash cp /etc/queued.conf /новый/путь/к/queued.conf ``` и отредактируйте его. Затем скопируйте исходный service-файл в `/etc`: ```bash cp /usr/lib/systemd/system/queued.service /etc/systemd/system/queued-my-profile.service ``` Замените следующую строку в этом файле: ```bash ExecStart=/usr/bin/queued ``` на ```bash ExecStart=/usr/bin/queued -c /path/to/new/queued.conf ``` ### Добавление задачи 1. Создайте скрипт с командой (например, с именем `script.sh`). 2. Создайте файл с приоритетом (`script.sh.pr`) для данной задачи, если это необходимо. 3. Создайте файл с именем пользователя (`script.sh.user`) для данной задачи, если это необходимо 4. Скопируйте файлы в `$WORKDIR` Также Вы можете воспользоваться `add_queued`. ## Настройка Все настройки хранятся в `/etc/queued.conf`. После редактирования, Вы должны перезапустить демон ```bash systemctl restart queued ``` ### Опции | | | |---------|---------| | WORKDIR | Полный путь к директории с исходными файлами задач. По умолчанию `/var/lib/queued/work`. Эта директория должна содержать исходные скрипты `script-name`, файл с приоритетом (если необходимо) `script-name.pr` и файл с именем пользователя (если необходимо) `script-name.user`. | | JOBDIR | Полный путь к директории с запущенными задачами. По умолчанию `/var/lib/queued/job`. Все файлы будут перемещены сюда. | | QUEUEFILE | Полный путь к файлу с очередью вычислений. По умолчанию `/var/lib/queued/queue`. | | PRIORITY | Стандартный приоритет. По умолчанию `0`. Чем выше значение, тем выше приоритет задачи. | | SLEEPTIME | Интервал обновлений в минутах. По умолчанию `5`. | | STARTASUSER | Стандартное имя пользователя. По умолчанию `root`. Именно данному пользователю будут принадлежать все созданные файлы. |