Самый простой вариант - не выключать принтеры вообще
Если принтеры типа HP 24xx и подобные - они могут переходить в спящий режим и предназначены для постоянного включения.
Если принтера гасились раньше, они по инерции будут гасится и дальше. Ну и плюс сюда же внештатное отключение электроэнергии (т.к. фазы разные и один выбитый автомат обесточит принтера, но не клиентов - к примеру).
Вариант второй - можно попробовать покапаться в реализации горячего включения по USB и ловить моменты отключения и включения устройств соответственно (об этом должно в логах писаться) и в момент включения делать переинициализацию устройств и cups, а в момент отключения корректное отключение устройства.
Этот вариант тоже изучаю.
Ну и полседний вариант, если принтеры могут держать lpt, то можно взять JetDirect rfrой-нибудь и посдить их на них (хотя сейчас возможно есть usb-шные JetDirectы)
А теперь самый смешной ответ! Принтсервер на базе Linux был установлен (планируется ещё n-цать поставить) на смену принтсерверу D-Link DP-300+ в виду постоянного переполнения буфера портов принтсервера (и соответсвенно постоянных отказов последнего). Всё это включая покупку DP-300+ и установку и настройку принтсервера на базе Linux в организации сделали в целях
экономии денег, и для развлечения IT-подразделений
Так что я думаю JetDirect в этой конторе вряд ли когда появится.
Временное решениеПока повесил в cron скрипт, на время разбирательства, вида:
#!/bin/sh
#
# Константы
# # # #
CUPS_ENABLE="/usr/bin/enable"
CUPS_LPSTAT="/usr/bin/lpstat"
LPSTAT_OPT="-a"
AWK="/bin/awk"
#
# Динамические переменные
# # # #
CUPS_PRINTERS=`$CUPS_LPSTAT $LPSTAT_OPT | $AWK '{print $1}'`
#
# Вычисления
# # # #
for all_prn in $CUPS_PRINTERS; do
$CUPS_ENABLE $all_prn
done
Прочтение документации по адресу
http://printserver:631/documentation.html пока особых результатов не принесло.
Так что вопрос по прежнему в силе