2009-09-17 3 views
1

Мне нужно знать каждый раз, когда будет создано/завершено задание печати Mac, а также некоторая информация об этом задании (то, что было напечатано, страницы, копии и т. Д.).Как узнать, когда были завершены задания печати CUPS плюс информация об этой задаче?

Лучший способ, с которым я дошел до сих пор, - использовать kqueue() on/var/spool/cups /, а затем проанализировать файлы C##### по мере их создания, но мне интересно если есть лучший способ.

+0

Это может быть больше ответов на serverfault.com –

ответ

1

Я бы подумал о создании фильтра, который вы можете поместить в конвейер CUPS, который собирает эту информацию и сохраняет ее для вас (скажем, в базе данных). Затем вы можете получить доступ к базе данных, чтобы получить информацию, используя любой стандартный механизм доступа к базе данных. В основном фильтр - это просто программа с командной строкой, которая получает несколько параметров, переданных ей из CUPS, и ей нужно прочитать ввод на stdin и записать его в stdout. Дополнительную информацию вы можете найти на странице http://www.cups.org/documentation.php/api-filter.html.

+0

Мне очень нравится эта идея. Любые идеи о том, как я мог бы сказать, когда работа была отменена с использованием этого маршрута? –

+0

Я думаю, что есть некоторые способы общения с бэкэндом. Я на самом деле не реализовал фильтр для CUPS, хотя я работал над некоторыми LPR-фильтрами в течение дня. См. Раздел об общении с бэкэнд. Вам нужно будет работать с бэкэнд, который записывает статус устройства обратно в фильтр, но я думаю, что большинство из них делает так, что программное обеспечение подсчета страниц может легко подключиться к нему и делать правильные вещи. – tvanfosson

+0

Отлично, спасибо. –

1

Вы когда-нибудь смотрели, что вам дает страница_log? Есть справочная страница с подробными сведениями о ее формате. Последние версии CUPS позволят вам настроить объем информации, зарегистрированной в этом файле.

+0

У меня не было, спасибо, что указали. –

 Смежные вопросы

  • Нет связанных вопросов^_^