Простая система массового обслуживания?

Учитывая товарный ПК, мы хотели бы использовать его для выполнения некоторых задач в фоновом режиме круглосуточно.

В принципе, мы хотели бы иметь команды вроде:

add-task *insert command here* list-tasks remove-task(s) 

Добавленные задачи должны просто помещаться в очередь и выполняться один за другим в фоновом режиме (сохраняя работу после выхода из оболочки).

Есть ли какой-нибудь простой скрипт / программа, которая это делает?

    3 Solutions collect form web for “Простая система массового обслуживания?”

    Существует стандартная командная команда, которая делает больше или меньше того, что вам нужно. Точнее, batch выполняет задания, когда загрузка системы не слишком высока, по одному (поэтому она не делает никакой распараллеливания). Командная команда является частью пакета.

     echo 'command1 --foo=bar' | batch echo 'command2 "$(wibble)"' | batch at -qb -l # on many OSes, a slightly shorter synonym is: atq -qb at -qb -r 1234 # Unschedule a pending task (atq gives the task ID) 

    Существует множество систем массового обслуживания, но они часто очень специализированы.

    Вы можете посмотреть at планировщик. Это похоже на cron в некотором роде, но оно больше похоже на очередь для одноразовых заданий, чем для повторных заданий. Он может «планировать» вещи по критериям, отличным от времени, таким как загрузка системы или последовательность заданий.

    У вашего любимого дистрибутива почти наверняка есть пакеты для него.

    Другое решение – использовать lpd и создать собственный «драйвер печати», который выполняет ваши задания. Друг помог мне разобраться, когда у меня был подобный запрос. Создайте такой скрипт и поместите его в /tmp/batch.sh :

     #!/bin/bash TMPFILE=$(mktemp /tmp/XXXX) exec <"$6" cat - > $TMPFILE chmod a+x $TMPFILE $TMPFILE rm -f $TMPFILE 

    Затем выполните:

     lpadmin -p batch1 -E -P /tmp/batch.sh 

    Это запускает очередь, и вы можете создать больше, используя другие имена вместо batch1. Добавьте работу:

     lp -d batch1 /path/to/jobscript 

    Управляйте заданиями с помощью lpq , lprm и lpstat . Если вам нужна дополнительная гибкость при передаче аргументов вашим заданиям, вы можете сделать сценарий batch.sh fancier.

    (Я пробовал batch прежде чем спускать этот маршрут, но либо он не работает как очередь на OSX, либо я неправильно использовал его.)

    Interesting Posts

    Как запустить исполняемый файл .sh на удаленном сервере из локального пула на удаленном пути?

    Настройки по умолчанию для Inkscape?

    Как повторить в настоящее время введенный параметр на консоли bash?

    Деактивировать CLI-карту графической карты Nvidia

    Как подавить отображение предыдущих заданий?

    Как выйти из панели tint2?

    Какие параметры конфигурации системы на HP Compaq dc5750 необходимо изменить, если «работает Unix»?

    Виртуальная машина, висящая на shudown

    Какая информация отправляется клиентом на сервер при установлении соединения SSH?

    Как переместить вновь созданный файл в определенное место в tarfile

    Разбор заголовков файла последовательности

    Отображать время работы cron в удобном для пользователя формате

    Как удаленно выполнять несколько команд на нескольких серверах?

    Как настроить vim для взаимодействия с интерактивными командами командной строки?

    Как выйти из ssh-соединения при административно запрещенной ошибке

    Linux и Unix - лучшая ОС в мире.