Обслуживание заданий печати осуществляется по правилу ‘первым пришел – первым обслужен’ (FIFO). Системный администратор может при желании изменить порядок печати с помощью программы lpc.
Начиная с ядра 2.1.33 устройство lp является клиентом нового устройства parport. Введение parport решает некоторые проблемы, связанные с lp – теперь можно разделять параллельные порты с другими драйверами, динамически связывать порты с устройствами, не устанавливая жесткого соответствия между адресами I/O и номером порта и т. д. Подробнее об этом вы можете прочитать в статье [П11.11].
9.6.2. ФАЙЛ /ETC/PRINTCAP
Файл /etc/printcap – это главная база данных системы печати LPD. Принтер будет получать задания на печать только в том случае, если он (принтер) описан в этом файле. Поэтому для получения возможности использовать принтер вы должны добавить очередь печати к lpd, т. е. создать новый буферный подкаталог в каталоге /var/spool/lpd и добавить соответствующую запись в файл /etc/printcap.
Запись в файле /etc/printcap выглядит примерно так:
# ЛОКАЛЬНЫЙ djet500
lp|dj|deskjet:
:sd=/var/spool/lpd/dj:
:mx#0:
:lp=/dev/lp0:
:sh:
Каждый элемент файла /etc/printcap начинается со строки, задающей имена принтера (их может быть несколько), разделяемые вертикальной чертой. Затем следует ряд параметров конфигурации, разделенных двоеточиями (обычно каждый параметр заключается в двоеточия с обеих сторон). Каждый параметр имеет вид xx=строка или xx#число, где xx – двухсимвольное имя параметра, а строка и число – присваиваемые ему значения. Если никакого значения не присваивается, переменная является булевой, и ее присутствие означает ‘истина’. Допускаются пустые операторы: два рядом стоящих двоеточия. Строки, начинающиеся символом #, содержат комментарий. Обратная косая черта в конце строки означает, что в следующей строке идет продолжение текущей строки.
Приведенный выше пример записи определяет принтер называемый lp, dj, или deskjet, его спул размещается в директории /var/spool/lpd/dj, максимальный размер задания не имеет ограничения, печать производится на устройство /dev/lp0, и страница с заголовком (с именем пользователя, который отправил задание на печать, и другой информацией) не добавляется в начало задания печати.
Подробнее о том, как создавать такие записи, можно прочитать на справочной странице для printcap. Но о некоторых самых важных (и обязательных) параметрах стоит рассказать здесь, хотя бы просто для примера.
• sd=буферный_каталог. У каждого принтера должен быть свой буферный каталог. Все буферные каталоги должны находиться в одном каталоге (обычно это /var/spool/lpd) и иметь имена, совпадающие с полными именами обслуживаемых ими принтеров. Буферный каталог нужен даже в том случае, если описываемый принтер подключен к другой машине: задания находятся на локальной машине до тех пор, пока они не будут переданы на печать.