Если Вы - intereseted в единственном подходе установщика, проверяете http://autopackage.org и http://zero-install.sourceforge.net/
Это должно быть зафиксировано путем изменения 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.
Вы могли просто использовать "разрешать" команду в качестве корня (или некоторая другая учетная запись администратора чашек). Если это происходит действительно слишком часто, добавьте маленький crontab, использующий "lpstat-a" для обнаружения отключенных принтеров.
Вашей проблемой можно было заняться по-разному, в зависимости от версии CUPS, который Вы выполняете.
Кроме того, это зависит от того, как точно очередь печати сервера CUPS соединяется с реальным устройством печати: ipp://?, socket://?, lpd://?
Более поздние версии CUPS идут со встроенной функциональностью, которая могла помочь здесь. Это называют "ErrorPolicy". Это - настройка по умолчанию, выбран в cupsd.conf и определяет, как cupsd должен обработать очереди печати, которые не ведут себя как ожидалось. У Вас есть 4 варианта установить по умолчанию или отметить каждой очереди индивидуально:
ErrorPolicy abort-job
ErrorPolicy retry-job
ErrorPolicy retry-this-job
ErrorPolicy stop-printer
Кроме того, можно установить отдельный 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, спускающиеся беспорядочно.