Принудительно использовать неинтерактивное «dpkg --configure» при использовании apt-get install

Оказывается, CUPS предлагает команды cupsreject и cupsaccept для пометки/оттметки принтера как непригодного для использования (поэтому в диалоговых окнах печати он будет выделен серым цветом). Также cupsreject принимает дополнительный параметр -r со строкой, указывающей на причину недоступности принтера.

В сочетании с двумя правилами udev, которые выполняются, когда принтер подключен к USB-порту (или включен) и отключен (выключен), это позволяет нам пометить принтер как "отключенный" и иметь это состояние на всех компьютерах, которые обращаются к принтеру по сети:

/etc/udev/rules. d/usb-принтер.rules:

ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="03f0", ENV{ID_MODEL_ID}=="0917", RUN+="/usr/sbin/cupsaccept HP_LaserJet_3330"
ACTION=="remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_VENDOR_ID}=="03f0", ENV{ID_MODEL_ID}=="0917", RUN+="/usr/sbin/cupsreject -r 'udev: Printer not connected' HP_LaserJet_3330"

Некоторые заметки для тех, кто хочет адаптировать это решение для своей собственной системы:

  • Часть имени файла правила "usb-принтер" является произвольной, но udev может его проигнорировать, если имя файла не заканчивается на .rules.
  • Идентификаторы производителя USB и продукта (0x03f0 и 0x0917 в данном случае) должны быть изменены на идентификаторы принтера, как показано в lsusb.
  • Имя принтера, заданное командами cupsaccept и cupsreject, должно совпадать с именем, используемым CUPS. Список установленных принтеров можно составить с помощью команды lpstat -v.
2
13.01.2018, 20:33
0 ответов

Теги

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