[分享] CUPS 打印服务 让 NAS 检测到打印机上电 → 自动重启 CUPS(udev 规则)
发表于 : 2026年 5月 24日 星期天 5:15 pm
问题: F4-221 从TOS5 升级到TOS6.0794 后, 出现usb连接的打印机断电再上电后不能打印的问题。
usb打印机docker安装见:viewtopic.php?t=4037
解决方法:
原理:宿主机用 udev 监控 USB 打印机插入事件,一旦检测到就自动执行 docker restart cups。
1. 先在 NAS 宿主机获取打印机 USB 信息
在 NAS 命令行(SSH 进去)执行:
bash
运行
会看到类似:
记下:厂商 ID: 设备 ID(例子:0483:5750)
2. 在 NAS 宿主机新建 udev 规则文件
运行vi /etc/udev/rules.d/99-cups-printer.rules
写入(把 0483:5750 换成你自己的),docker 的路径和container id按自己的来写,
保存退出(vi 按 Esc,输入 :wq 回车)。
3. 重载 udev 规则
运行
4. 测试
关闭打印机 → 再打开
观察:NAS 会自动重启 cups 容器,10 秒左右 CUPS 自动识别并恢复打印。
usb打印机docker安装见:viewtopic.php?t=4037
解决方法:
原理:宿主机用 udev 监控 USB 打印机插入事件,一旦检测到就自动执行 docker restart cups。
1. 先在 NAS 宿主机获取打印机 USB 信息
在 NAS 命令行(SSH 进去)执行:
bash
运行
代码: 全选
lsusb代码: 全选
Bus 002 Device 005: ID 0483:5750 Epson ...2. 在 NAS 宿主机新建 udev 规则文件
代码: 全选
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d7978f157458 olbat/cupsd "/usr/sbin/cupsd -f" 8 days ago Up 11 minutes airprint代码: 全选
which docker
/Volume1/@apps/DockerEngine/dockerd/bin/docker写入(把 0483:5750 换成你自己的),docker 的路径和container id按自己的来写,
代码: 全选
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5750", RUN+="/Volume1/@apps/DockerEngine/dockerd/bin/docker restart d7978f157458"3. 重载 udev 规则
运行
代码: 全选
udevadm control --reload-rules
udevadm trigger关闭打印机 → 再打开
观察:NAS 会自动重启 cups 容器,10 秒左右 CUPS 自动识别并恢复打印。