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

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

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

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

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

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

  • Почему несколько экземпляров Mate-терминала имеют один и тот же PID?
  • Как я могу увидеть, какие процессы запущены?
  • 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

    Разбор таблицы текстовых файлов и агрегирование информации

    Linux найдет протокол WiFi Networks (a / b / g / n) всех доступных точек доступа

    Как открыть приложения в оконном менеджере TWM без использования xterm

    Arch Linux – переход на двойную загрузку с Windows

    Проблемы с сбоем питания встраиваемых Linux

    Безопасное измельчение файлов

    Есть ли способ сканирования локальной сети с включенной dhcp для просмотра IP-адреса подключенных устройств с компьютера GNU / Linux?

    Почему USB-накопитель монтируется только для чтения после копирования образа диска на него?

    Знаки процента и переменная среды в сценарии оболочки

    Логин SSH, когда root терпит неудачу, но я уверен, что ввел правильный пароль

    Невозможно прочитать файл / proc / pid / stack даже с соответствующими разрешениями

    Неправильный автоматический часовой пояс

    acroread работает только с правами root

    Как я могу ответить на приглашение в сценарии оболочки, работающем в фоновом режиме?

    Как работает AptConf в Debian Wheezy?

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