Стоит cups-1.2.10 под Gentoo. К нему подключены два принтера HP P2015 (драйвер HP LaserJet Series PCL 6 CUPS из комплекта cups-а).Эти принтеры через samba сервер расшарены для виндовс-пользователей.
Иногда по пока непонятной мне причине, первый принтер останавливается (сам). В интерфейсе cups-а об этом пишут следующее:
netprinter-hp1 (Default Printer) "/usr/libexec/cups/backend/lpd failed"
Description: HP LaserJet P2015Make and Model: HP LaserJet Series PCL 6 CUPS
Printer State: stopped, accepting jobs, published.
Соответственно, никто печатать на этот принтер больше не может. Помогает только заход в интерфейс cups-а под принт-администратором и
нажимание кнопки "start printer".
Принтер успешно стартует и начинает печатать все, что накопилось у
него в очереди и все новые задания.... до очередной остановки. Такие
остановки могут случаться несколько раз в час, а могут - пару раз на
дню всего лишь.Понятно, что можно написать простой скрипт, который будет ходить в
веб-интерфейс cups-а, проверять, остановлен ли принтер. И, если
принтер опять остановился, стартовать его.Но хотелось бы узнать причину остановки. Куда вообще рыть? В логах cups-а
тишина, никакой информации похожей на "принтер остановился потому-то потому-то"
я там не нашел :(Может у cups-а есть какая то скрытая опция типа "автостартовать принтер
если он остановился"?
...почему останавливаются, еще не разобрался, но автостарт сделал (командой cupsenable в крон)for name in `/usr/bin/wget -O - http://localhost:631/printers/ 2>&1 | grep -B 1 Paused | grep -E "netprinter.*</" | sed -r "s/.*\">(.*)<\/[Aa]>.*/\1/" `; do echo printer $name stopped at `date`\, reenable it; /usr/sbin/cupsenable $name; done
>...почему останавливаются, еще не разобрался, но автостарт сделал (командой cupsenable в крон)
>
>
>for name in `/usr/bin/wget -O - http://localhost:631/printers/ 2>&1 | grep -B 1 Paused | grep -E "netprinter.*</" | sed -r "s/.*\">(.*)<\/[Aa]>.*/\1/" `; do echo printer $name stopped at `date`\, reenable it; /usr/sbin/cupsenable $name; done100% решения этой проблемы не знаю, но мне помогла замена usb-шнура на качественный usb 2.0
с феритовыми развязками. А по поводу скрипта, сам приблизительно таким пользуюсь, но заместо чтения веб страницы cups-а пользую lpstat.
>но заместо чтения веб страницы cups-а пользую lpstat.во, спасибо, про lpstat не знал
надо, все таки, лучше читать документацию ;-)
Общее решение проблемы - это в настройках принтера (в веб-интерфейсе cups-а - "set printer options") поставить "Error Policy" в "retry-job"По умолчанию там у меня стояло "stop printer", поэтому принтер и останавливался.