Назначением системы очередей является поддержка очередей заданий для их выполнения (для таких системных ресурсов, таких как, центральный процессор или принтер).
Очереди контролируются администратором через механизм очередей. Например, системный администратор может удалять задания из очереди, изменить статус задания и т.п.
Важнейшими преимуществами системы очередей являются следующие:
· Одно задание может принадлежать
нескольким очередям;
· Пользователь может распределять свои
задания по различным очередям;
· С ресурсом (например, принтером) может
быть связано несколько очередей.
Когда пользователь дает одну из команд вывода файла в очередь (qprt, lp или lpr) запрос на печать задание размещается в каталог /var/spool/lpd/qdir (при необходимости, файл копируется в каталог /var/spool/qdaemon).
Процесс qdaemon, который все время работает, поддерживает список всех определенных очередей и все время отслеживает появление новых заданий и состояние устройств вывода.
В случае, если устройство вывода доступно и не занято, qdaemon передает задание процессу локальной печати (piobe). В противном случае, qdaemon будет пытаться выполнить задание позже.
Процесс qdaemon контролируется файлом /etc/qconfig. Этот файл содержит станзы (stanza) (поименованные блоки данных) для каждой очереди.
Пример файла /etc/qconfig
lp0: * 1 очередь подсоединенная к 1 устройству
device=lp0dev
discipline=fcfs
lp0dev:
file=/dev/lp0
backend=/usr/lib/lpd/piobe
header=group
trailer=never
feed=never
lpq: * 1 очередь подсоединенная к 2-м устройствам
device=lpqdev1, lpqdev2
lpqdev1:
file=/dev/lp1
backend=/usr/lib/lpd/piobe
lpqdev2:
file=/dev/lp2
backend=/usr/lib/lpd/piobe
ps: * 2 очереди подсоединенные к 1 устройству
device=psdev
psdev:
file=/dev/lp3
backend=/usr/lib/lpd/piobe
asc:
device=ascdev
ascdev:
file=/dev/lp3
backend=/usr/lib/lpd/piobe
Станза очереди начинается с имени очереди (до 20 символов) оканчивающемся двоеточием. Первая очередь в файле /etc/qconfig является очередью по умолчанию и используется в том случае, если в команде на печать не было специально указана имя очереди. Затем указывается ссылка на используемое этой очередью устройство(а).
Станза очереди может содержать некоторые другие атрибуты, самый важный из которых дисциплина очереди (discipline). Этот атрибут может принимать два значения:
fcfs - такой порядок обслуживания очереди, когда первыми выполняются те задания, которые первыми поступили в очередь.
Дисциплина sjn указывает на то, что сначала будут выведены задания имеющие наименьший размер.
Станза устройства начинается с имени устройства (до 20 символов), оканчивающемся двоеточием. Станза устройств должна иметь атрибут backend, который указывает местоположение выходной программы (например, программы локальной печати piobe).
Станза устройств может иметь также следующие атрибуты:
По определению | Иначе | |
access | write | both (используется для модемов или выходных программ требующих возможности чтения) |
header | never | always, group |
trailer | never | always, group |
feed | never | Integer |
aling | FALSE | TRUE |
· Каталог /var/spool/lpd/qdir
содержит информацию о файлах заданных на
печать.
· Файл /etc/qconfig описывает очереди и
устройства, которые с ними связаны, доступные
для команд печати для размещения заданий.
·
Каталог /var/spool/qdaemon содержит копии файлов
заданных на печать.
· Каталог /var/spool
содержит файлы и каталоги используемые
программами и демонами печати.
· Каталог /var/spool/lpd/stat
содержит информацию о статусе заданий
сохраненных и обновленных для
использования qdaemon и выходными программами.
Рекомендуется для работы с этими ресурсами
использовать SMIT.
В большинстве случаев обновление стандартных системных файлов не рекомендуется.
В различных системах UNIX используются различные команды на выполнение печати. Все эти команды имеют совсем различные опции. Для совместимости в AIX вы можете использовать все типы команд задания на печать и просмотра заданий в очереди, используемые в UNIX System V, BSD и AIX.
SYSTEM V BSD AIX
задание на печать lp lpr qprt
просмотр очереди lpstat lpq qchk
· Проверьте подключение кабелей.
·
Проверьте включен ли принтер в состояние
on-line и ready.
· Проверьте, существует ли файл
устройства.
· Проверьте файл /etc/qconfig.
·
Проверьте состояние qdaemon (может быть
запущено два qdaemon). В этом случае
рекомендуется дать команду stopsrc -s qdaemon (остановятся
оба экземпляра), а затем дать команду startsrc -s
qdaemon.
Для быстрого вызова меню изменения характеристик очереди используйте команду smit chpq.
Для быстрого вызова меню удаления очереди используйте команду smit rmpq. Учтите, что при удалении очереди пользовательские настройки принтера также удаляются.
Для быстрого вызова меню управления очереди (просмотра статуса очереди печати, старта и остановки очереди, а также для установки очереди печати по умолчанию) используйте команду smit pqmanage.
Состояние |
Описание |
DEV_BUSY | Принтер занят обслуживанием других запросов на печать. Это состояние возникает в том случае, если с одним принтером связано несколько очередей и иная очередь использует принтер в настоящий момент. Такое состояние возникает также в тот момент, когда приложение, отличное от qdaemon использует данный принтер. Ваши действия: подождите, пока принтер не освободится или kill (убейте) процесс или работу, которые используют порт принтера. |
DEV_WAIT | Очередь ожидает принтер. Такое состояние возникает в такие моменты, когда принтер находится в состоянии offline (нет бумаги, замята бумага, проблема с кабелем и т.п.) |
DOWN | Ожидание.Это состояние возникает в ситуации, когда истекает время ожидания попыток драйвера принтера установить связь с ним. Оператор может ввести очередь в это состояние на время системного обслуживания. |
OPR_WAIT | Очередь ожидает изменения производимые оператором. Это состояние устанавливается тогда, когда оператор заменяет бумагу (размер, ориентацию) и т.п. Обычно программным путем. |
QUEUED | Работа в очереди и ожидает. |
READY | Очередь готова для получения заданий на печать. |
RUNNING | Файл печатается. |
UNKNOWN | Проблема с очередью. Это состояние возникает в такие моменты, когда пользователь создает очередь для файла устройства, которое используется другой очередью и ее состояние DEV_WAIT. |