Я пытаюсь обновить демон CUPS на моем QNAP NAS, который работает под управлением *nix. Вся система ОС загружается на RAMDISK при загрузке NAS, поэтому я придумал скрипт, который запускается при запуске и внедряет мой собственный код. Теперь моя проблема в том, что мне нужно запустить действие ядра, чтобы драйвер принтера USB вызвал скрипт cupsd.sh.
По данным производителя:
Мы изменили "USB Printer Device Class driver" ядра Linux для выдачи сигнала/сообщения при подключении/отключении USB-принтера. После того, как демон picd получит сигнал/сообщение, он вызовет cupsd.sh для add_printer/del_printer .
Есть идеи, как этого добиться?
решение1
Обычно это делается udev в Linux, однако я не уверен, использует ли его QNAP. Другой альтернативой является mdev из busybox. Проверьте свою систему, чтобы узнать, какой подход она использует, а затем прочтите соответствующую документацию.
В целом это работает следующим образом:
- ядро генерируется даже при подключении нового устройства,
- демон пользовательского пространства (udev или mdev) прослушивает эти события,
- событие проходит через цепочку правил, и если совпадение найдено, то предпринимается соответствующее действие,
- действием может быть выполнение вашего пользовательского сценария.