Мне интересно, есть ли у этого партия очередь (т.е. batch
, at -q b
).
Я спрашиваю об этом, потому что, кажется, есть обязательное время ожидания в 1 минуту (по atd
по умолчанию) между последовательными выполнениями заданий. (например, если я выполняю batch <<<true
пять раз для очистки очереди требуется не менее 4 минут.)
Это кажется ненадежным для использования в производственном скрипте, потому что если какой-то другой пользователь или скрипт делает что-то синонимичное for i in {1..2880}; do batch <<<true; done
до моего выполнение моих скриптов будет отложено / голодано на 2 дня.
Эта команда была более полезной, когда на типичной машине * nix было очень мало процессоров, но они широко распределялись между пользователями. Так как man batch
состояния,
batch выполняет команды, когда это позволяют уровни загрузки системы; другими словами, когда средняя загрузка падает ниже 1,5 или значения, указанного при вызове atd.
Таким образом, он был предназначен для использования в среде с перегруженными ресурсами. Если задание запускается в то время, когда нагрузка падает ниже порогового значения, системе имеет смысл следить за тем, какую нагрузку добавили другие пользователи после завершения задания из очереди пакетной обработки. Возможно, нагрузка снова вырастет выше порога, поэтому выполнение заданий из пакетной очереди необходимо снова приостановить. Отсюда перерыв.
Ваш контрпример действителен, но нереален. Пользователь, саботирующий систему, как вы описываете, - это "социальная проблема", а не техническая. Если вы думаете о среде высокопроизводительных вычислений, в которой конкурирующие пользователи отправляют множество заданий: это не то, что batch
вместо этого является областью таких инструментов, как SLURM.