[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: echo "string" > /dev/lp0 vs cups



Спасибо за ответы.

Программа предназначина для считывания магнитных карточек персонала с нерегулярным рабочим днем, и записи в базу данных информации о их приходе и уходе. Потом на основе этой информации расчитывается их зарплата. Рабочий день может начинаться и кончатся в любое время дня и ночи, речь идет о типографии. Читалки магнитных карточек предполагается пока использовать 2, соответственно для выхода и входа. Запись ведется в базу данных, возможно в лог файл, и на принтер. Принтер в данном случае рассматривается как дублирующий узел, для создания hardcopy в наглядной форме. Не бирюльки же считаем, а зарплату, человек должен видеть что его "посчитали".

Писать свой спулер (для данной задачи) не интересно, поэтому я решил
использовать что-то стандартное, например cups (одним махом решая
пробелму распечатки на удаленном принтере). Установил, принтер завелся
со второго раза, работает удовлетворительно, но я совершенно не понимаю
с какой стороны к этому делу подступится на предмет распечатки не файла
(как заведено) а string.

Victor Wagner escribió:
Вроде бы само понятие SPOOL (Simulation of pereferial operations
on-line) не рассчитано на то, что некоторая задача захватывает ресурс
надолго и печатает в час по чайной ложке.
Согласен, но никто захватывать ресурс не собирается. Большую часть времени ресурс свободен, на хосте одновременно вертится несколько (по крайней мере две) копий программы, как только у какой-то копии появляется о чем сообщить миру, она подает строчку на принтер. Важно чтоб они при этом друг друга не перебивали (риск мизерный, но реальный), ничье сообщение не потерялось, и программа продолжала работать даже при отсутсвии принтера.

Данная задача больше напоминает по логике своей работы вывод на консоль.
Может быть в эту сторону посмотреть? В ядре есть опция Enable console on
line printer.
Мне приходило такое в голову, операция действительно напоминает консоль, но не то.

Иван Лох escribió:
> А нужен ли тут спулер? Он скорее для многозадачности... Я бы назвал
> необходимую вещь скорее буфером. FIFO который смотрит на состояние
> принтера (есть библиотеки на C на Perl и т. д.) или может быть
> даже на proc, а потом тупо печатает в порт.
Посмотреть на состояние принтера конечно можно, да толку? Придется отдельно менеджер печати писать, а это как раз то чего я пытаюсь избежать.

> Я правда уже не помню
> может ли матричный принтер сообщить что у него кончилась бумага.
Может. Кроме того он должен потреблять не больше пары листов в день, а я туда ящик трактора заправлю :) на 10 лет хватит.



Reply to: