Система печати в Unix. LP spoolling
(описана система печати в System V)
Печатать, конечно, можно и так: cat file > /dev/lp. Но в
многопользовательской системе такой фокус не всегда пройдет.
Поэтому печатаемый файл ставят в очередь на печать.
Имеем принтер. У принтера есть
ИМЯ_ПРИНТЕРА - придумывается администратором.
ПОРТ_ПРИНТЕРА - специальный файл в который надо
выталкивать данные для печати.
ИНТЕРФЕЙСНАЯ_ПРОГРАММА - программа, которая как раз и
будет этим заниматься.
Если у нас нормально сконфигурена система печати, то
печататься можно так:
lp -d ИМЯ_ПРИНТЕРА file
или, если мы хотим напечатать на "default" принтере
cat file | lp
lpstat Посмотреть в каком состоянии очередь печати
cancel [идентификатор_запроса ...] [принтер ...]
Срубить запрос на печать
lp просто складывает файл в SPOOL КАТАЛОГ. ДЕМОН ПЕЧАТИ
lpsched обнаруживает вновь поступивший файл, ставит его в
очередь на печать, и, когда очередь доходит, запускает наконец
ИНТЕРФЕЙСНУЮ ПРОГРАММУ, вход которой берется из печатаемого
файла, а ее вывод перенаправляется на ПОРТ_ПРИНТЕРА.
Подключить к системе новый принтер
---------------------------------------------------------------
lpshut # на время реконфигурации надо "гасить" lpsched
lpadmin -pLJ_printer -i/usr/lib/lp/model/lj_print -v/dev/lpt2
или
lpadmin -pNash_Nowyj_Printer -mstandard -v/dev/contty
enable Nash_Nowyj_Printer
accept Nash_Nowyj_Printer
lpsched # после реконфигурации надо вновь запустить lpsched
---------------------------------------------------------------
accept - позволяет ставить в очередь печать на этом принтере
enable - разрешает печатать стоящие в очереди задания
ключи команды lpadmin
-pИмя_Нового_Принтера
-vПОРТ_ПРИНТЕРА
-iИНТЕРФЕЙСНАЯ_ПРОГРАММА - маршрутное имя программы,
которая печатает
-mМОДЕЛЬ_ПРОГРАММЫ - имя "модели" такой программы,
лежащей в каталоге
/usr/lib/lp/model
-o nobanner - разрешить userу писать lp -o nobanner
(рекомендую ампутировать banner в интерфейсном скрипте)
-d printer - сделать принтером по умолчанию
-?Удаленный_хост - можно подключать принтер удаленной машины
-?Имя_принтера_на_удаленном_хосте
(ключи не помню, посмотреть в man)
-s host!printer - для Solaris - подключение удаленного принтера
# перед этим вписать принтер в /etc/lp/Systems
Вместе с системой накопления вывода на принтеры
поставляются образцы интерфейсных программ. Они представляют
собой shell-процедуры, перекодирующими печатаемый файл в формат
соответствующего принтера.
lpadmin -pstar1 -i/udd/print/inter -v/dev/xpit0 # локальный принтер
lpadmin -pstar1 -mdumb -v/dev/lpt1
Подключить к системе удаленный принтер
(ключи варьируются для разных версий Unix)
HP-UX:
lpadmin -pLJ_printer -?host -?printer
Solaris:
вписать удаленную машину в /etc/lp/Systems а затем
lpadmin -pLJ_printer -s 'host!printer' ; accept LJ_printer
lpadmin -dstar1 # Установить принтером по умолчани`
lpadmin -xstar1 # Ликвидировать принтер star1
/usr/lib/lp/model # Образцы интерфейсных программ (модели)
/etc/lp # Каталог конфигурации системы LP
/var/spool/lp/* # Каталоги с очередями
man lpadmin # Естественно!
LinuxPrinting.org Printer Database
http://linuxprinting.org/printer_list.cgi
Last-modified: Wed, 01 Dec 2004 14:04:06 GMT