银河麒麟V10打印任务卡在队列时,需配置CUPS自动清理失败任务:修改/etc/cups/cupsd.conf启用MaxJobTime 300和PreserveJobHistory Off,再创建定时脚本调用cancel清除状态为stopped/failed/connecting的任务,并通过systemd timer每日执行。

银河麒麟V10中打印任务卡在队列、状态显示“已停止”“处理中失败”或“无法连接打印机”,且手动取消无效时,需让CUPS自动识别并丢弃不可恢复的错误任务,避免后续所有打印请求被阻塞。
启用CUPS错误任务自动清理策略
第一步:打开CUPS服务配置文件
在终端中执行:sudo nano /etc/cups/cupsd.conf
第二步:定位到区块,在其内部添加两行关键参数(位置任意,但必须在该区块内):MaxJobTime 300PreserveJobHistory Off
【MaxJobTime 300 表示单个任务最长存活5分钟,超时即标记为失败;PreserveJobHistory Off 强制CUPS不保留失败任务记录,防止残留ID持续占用队列状态】
第三步:保存退出后重启服务 → sudo systemctl restart cups
配置失败任务自动清除脚本
方法一:使用系统自带的cancel命令定时扫描
创建清理脚本:sudo nano /usr/local/bin/clear-failed-jobs.sh
写入以下内容:
#!/bin/bash<br>lpstat -o | awk '$3 ~ /stopped|failed|connecting/ {print $1}' | xargs -r cancel
赋予执行权限 → sudo chmod +x /usr/local/bin/clear-failed-jobs.sh
这一步操作起来很简单,直接复制粘贴即可,但注意脚本里用的是字段匹配状态关键词,不是——因为lpstat输出格式为“任务名 用户 状态 时间”,错位会导致漏删。
绑定systemd定时器每日执行
第一步:创建timer服务单元文件 → sudo systemctl edit --force --full clear-failed-jobs.timer
第二步:填入以下内容(每天凌晨3:17执行一次):
[Unit]<br>Description=Clear failed print jobs daily<br>[Timer]<br>OnCalendar=*-*-* 03:17:00<br>Persistent=true<br>[Install]<br>WantedBy=timers.target
第三步:启用并启动定时器 → sudo systemctl daemon-reload → sudo systemctl enable --now clear-failed-jobs.timer
执行systemctl list-timers --all | grep clear确认状态为“next”且时间正确。
第四步:创建配套的service文件 → sudo systemctl edit --force --full clear-failed-jobs.service
填入:
[Unit]<br>Description=Run failed job cleanup script<br>[Service]<br>Type=oneshot<br>ExecStart=/usr/local/bin/clear-failed-jobs.sh<br>[Install]<br>WantedBy=multi-user.target











