Linux автоматический CUPS повторно добавляет принтер?

Если Вы - intereseted в единственном подходе установщика, проверяете http://autopackage.org и http://zero-install.sourceforge.net/

4
задан 9 October 2009 в 20:20
3 ответа

Это должно быть зафиксировано путем изменения ErrorPolicy в cupsd.conf или printers.conf:

CUPS 1.3/Mac OS X 10.5ErrorPolicy

Примеры

Задание аварийного прекращения работы ErrorPolicy

Задание повторной попытки ErrorPolicy

Принтер остановки ErrorPolicy

Описание

Директива ErrorPolicy определяет политику по умолчанию, которая используется, когда бэкенд не может отправить задание печати на принтер. [...]

См.: http://www.cups.org/doc-1.4/ref-cupsd-conf.html#ErrorPolicy

Значение по умолчанию:

принтер остановки - Остановка принтер и хранит верность работе для будущей печати

однако Вы, вероятно, хотите:

задание повторной попытки - Повторная попытка задание после ожидания в течение секунд N [...]

(или возможно retry-this-job).

Примечание: На CUPS V1.4 + это назвало FatalErrors.

3
ответ дан 3 December 2019 в 03:37

Вы могли просто использовать "разрешать" команду в качестве корня (или некоторая другая учетная запись администратора чашек). Если это происходит действительно слишком часто, добавьте маленький crontab, использующий "lpstat-a" для обнаружения отключенных принтеров.

0
ответ дан 3 December 2019 в 03:37

Вашей проблемой можно было заняться по-разному, в зависимости от версии CUPS, который Вы выполняете.

Кроме того, это зависит от того, как точно очередь печати сервера CUPS соединяется с реальным устройством печати: ipp://?, socket://?, lpd://?

Более поздние версии CUPS идут со встроенной функциональностью, которая могла помочь здесь. Это называют "ErrorPolicy". Это - настройка по умолчанию, выбран в cupsd.conf и определяет, как cupsd должен обработать очереди печати, которые не ведут себя как ожидалось. У Вас есть 4 варианта установить по умолчанию или отметить каждой очереди индивидуально:

ErrorPolicy abort-job  
ErrorPolicy retry-job  
ErrorPolicy retry-this-job  
ErrorPolicy stop-printer  
задание аварийного прекращения работы
- Прервите это задание и возобновите следующее задание в той же очереди
задание повторной попытки
- Повторите это задание после ожидания в течение секунд N (где N определяется директивой cupsd.conf "JobRetryInterval").
retry-this-job
- Повторите текущее задание сразу и неограниченно долго.
принтер остановки
- Остановите текущую очередь печати и храните верность работе для будущей печати. Это - все еще значение по умолчанию, если Вы не определяете иначе согласно вышеупомянутым альтернативам, Это также было значение по умолчанию + только возможное поведение для всех очередей в предыдущих версиях CUPS (тот, от которого Вы действительно хотите избавиться согласно Вашему вопросу).

Кроме того, можно установить отдельный ErrorPolicies на каждую отдельную очередь печати. Эта установка была бы отмечена в printers.conf файле. (Установите его от командной строки с lpadmin -p printername -o printer-error-policy=retry-this-job).


Для более старых версий CUPS я рекомендовал бы взглянуть на beh, обработчик CUPS BackEnd. beh обертка, которая может быть применена к любому бэкенду CUPS.

Принятие Вашей очереди печати в настоящее время определяло бэкенд socket://192.168.1.111:9100, и это ведет себя в способе, которым Вам не нравится (быть отключенным cupsd время от времени из-за проблем сетевого соединения). С beh Вы переопределили бы свой бэкенд как это:

beh:/0/20/120/socket://192.168.1.111:9100

Это повторило бы задание 20 раз в двухминутных интервалах и отключило бы очередь только, все еще не успешно выполняясь. Или Вы могли сделать это:

beh:/1/3/5/socket://192.168.1.111:9100

Это повторяет задание 3 раза с 5-секундными задержками между попытками. Если задание все еще перестало работать, оно отбрасывается, но очередь не отключена. Вы хотите позволить попытке cupsd неограниченно долго для соединения с устройством? Хороший, попробуйте это:

beh:/1/0/30/socket://192.168.1.111:9100

Попробуйте бесконечно, пока принтер не возвратится. Интервалы между попытками подключения составляют 30 секунд. Задание не теряется, когда принтер выключен. Можно намеренно задержать печать просто путем выключения принтера. Хорошая конфигурация для настольных принтеров и/или домашних пользователей.


В целом, нет никакой потребности бездельничать со сценариями удара, заданиями крона, lpadmin, cupsenable или sudo чтобы повторно активировать очереди CUPS, спускающиеся беспорядочно.

1
ответ дан 3 December 2019 в 03:37

Теги

Похожие вопросы