Dav*_* V. 75
有 cupsenable 命令。
cupsenable printer
启动已禁用的打印机(要找出打印机名称,您可以使用lpstat -p或列出您的打印机lpc status)。
您可能必须以 root 身份或通过 sudo 运行命令。因此,如果您必须在 shell 脚本中启用打印机,则必须将 shell 添加到 root 的 crontab,或编辑您的 sudoers 文件。
Kur*_*fle 26
您的问题可以通过不同的方式解决,具体取决于您运行的 CUPS 版本。
更多最新CUPS的版本(1.2及以上版本)配有一个内置功能,可以帮助这里。它被称为“错误策略”。在cupsd.conf 中选择了它的默认设置,并确定cupsd 应该如何处理行为不符合预期的打印队列。您有 3 种选择分别标记每个队列:
ErrorPolicy abort-job
ErrorPolicy retry-job
ErrorPolicy retry-this-job
ErrorPolicy stop-printer
Run Code Online (Sandbox Code Playgroud)
解释:
abort-job
-- 中止此作业并继续同一队列中的下一个作业
retry-job
-- 等待 N 秒后重试此作业(其中 N 由cupsd.conf的“JobRetryInterval”指令确定)。
retry-this-job
-- 立即无限期地重试当前作业。
stop-printer
-- 停止当前打印队列并保留作业以备将来打印。这仍然是默认值,除非您按照上述替代方案另外定义它也是默认值 + 以前版本的 CUPS 中所有队列的唯一可能行为(您确实希望根据您的问题删除该队列)。
此外,您可以为每个单独的打印队列设置单独的 ErrorPolicies。此设置将在 printers.conf 文件中注明。(从命令行设置它lpadmin -p printername -o printer-error-policy=retry-this-job)。
对于旧版本的 CUPS,我建议您查看behCUPS BackEnd Handler。beh是一个可以应用于任何 CUPS 后端的包装器。
假设您的打印队列当前定义了一个后端socket://192.168.1.111:9100,并且它以您不喜欢的方式运行(由于网络连接问题不时被cupsd 禁用)。随着beh你重新定义你的后台是这样的:
beh:/0/20/120/socket://192.168.1.111:9100
Run Code Online (Sandbox Code Playgroud)
这将在两分钟的时间间隔内重试作业 20 次,并仅在仍未成功时禁用队列。或者你可以这样做:
beh:/1/3/5/socket://192.168.1.111:9100
Run Code Online (Sandbox Code Playgroud)
这将重试作业 3 次,两次尝试之间有 5 秒的延迟。如果作业仍然失败,则将其丢弃,但不会禁用队列。您想让 cupsd 无限期地尝试连接到设备吗?好,试试这个:
beh:/1/0/30/socket://192.168.1.111:9100
Run Code Online (Sandbox Code Playgroud)
无限尝试直到打印机恢复。连接尝试之间的间隔为 30 秒。打印机关闭时作业不会丢失。您可以通过关闭打印机来故意延迟打印。适合桌面打印机和/或家庭用户的良好配置。
总体而言,没有必要更动的bash脚本,cron作业,lpadmin,cupsenable或者sudo为了重新激活CUPS队列下去不正常。
Den*_*son 10
使用的-E打印机选项lpadmin应该这样做。
lpadmin [-U username ] [ -h server[:port] ] -p printer option(s)
Run Code Online (Sandbox Code Playgroud)
正如下面的评论中指出的那样,请确保-E在打印机名称之后添加,因为这里是打印机选项,而不是lpadmin选项。请注意该man lpadmin页面的以下摘录:
在 -d、-p 或 -x 选项之前指定时,-E 选项会在连接到服务器时强制加密。
如果问题反复出现,您可能可以使用该lpadmin命令创建一个 CRON 作业。每小时cron入场:
0 * * * * /usr/sbin/lpadmin -p your_printer -E
Run Code Online (Sandbox Code Playgroud)
您可以通过运行来添加它:
sudo crontab -e
Run Code Online (Sandbox Code Playgroud)
小智 6
我的打印机是 HP CP1215 也有错误:打印机暂停 - “/usr/lib/cups/backend/hp failed”
重新启动后两者cups并avahi-daemon和标识与打印机lpstat -p和与启用cupsenable,我能够再次打印。仅重新启动cups和启用并没有解决问题。
我还将默认策略更改为 retry-job 并最终避免了将来使用 cronjob 出错:
* * * * * lpstat -p |grep "poissa käytöstä" && service avahi-daemon restart; service cups restart; cupsenable HP_Tuloostin
Run Code Online (Sandbox Code Playgroud)
哪里poissa käytöstä是用于维护的芬兰语本地化文本“乱序”,HP_Tuloostin是我的打印机的名称。
根据我的经验,默认策略和当前打印机策略都应配置为重试作业。默认策略只是您在安装新打印机时获得的策略。