温馨提示×

ubuntu spool打印任务卡住怎么办

小樊
33
2025-12-28 04:06:51
栏目: 智能运维

Ubuntu 打印队列卡住的快速处理步骤

一、快速清理队列

  • 查看状态与队列:
    • 查看打印机与作业:lpstat -p -d
    • 查看队列详情:lpq
  • 取消单个作业(按作业号 job_id):cancel job_id;取消某台打印机的全部作业:cancel -a printer_name;取消默认打印机全部作业:cancel -a
  • 重启打印服务以刷新队列:sudo systemctl restart cups
  • 若仍卡死,作为最后手段清理 spool 目录(会丢失未打印任务,谨慎):
    • 停止服务:sudo systemctl stop cups
    • 备份并清空:sudo mv /var/spool/cups /var/spool/cups.bak && sudo mkdir -p /var/spool/cups && sudo chown root:lpadmin /var/spool/cups && sudo chmod 750 /var/spool/cups
    • 启动服务:sudo systemctl start cups
  • 完成后重新打印测试。

二、定位根因

  • 服务是否运行:sudo systemctl status cups(若异常,执行:sudo systemctl restart cups
  • 查看 CUPS 错误日志,关注 “error/denied/timeout” 等关键词:sudo tail -f /var/log/cups/error_log
  • 检查配置语法与依赖:
    • 语法检查:cupsd -t
    • 依赖项:systemctl list-dependencies cups
  • 检查端口占用(CUPS 默认 631):sudo ss -ltnp | grep 631
  • 检查磁盘空间(/var 分区):df -h /var;空间不足会导致新任务无法入队
  • 检查权限与锁定:
    • 目录权限:ls -ld /var/spool/cups;必要时修正为 root:lpadmin,750
    • 查找占用进程:sudo lsof +D /var/spool/cups,必要时结束相关 PID(谨慎)
  • 用户组权限:将当前用户加入 lpadmin 组以提交任务:sudo usermod -aG lpadmin $USER(需重新登录生效)

三、常见场景与修复

  • 服务未启动或频繁崩溃:重启服务并查看日志定位配置/依赖问题;必要时用 cupsd -t 校验配置后再启动。

  • 配置错误:先备份 /etc/cups/cupsd.conf,从默认配置恢复,执行 cupsd -t 确认无误后重启 CUPS。

  • 权限/所有权不当:将 /var/spool/cups 设为 root:lpadmin,750,并确保提交任务的用户在 lpadmin 组。

  • 端口冲突:若 631 被占用,结束占用进程或修改 /etc/cups/cupsd.confPort 参数后重启。

  • 磁盘空间不足:清理 /var(如日志、临时文件),释放空间后重试。

  • 驱动/连接问题:用 lpstat -p -d 确认打印机状态;更新或重装驱动,检查 USB/网络/无线连接与电源。

四、命令速查表

目的 命令
查看队列与状态 lpstat -p -dlpq
取消单个作业 cancel job_id
取消某打印机全部作业 cancel -a printer_name
取消默认打印机全部作业 cancel -a
重启服务 sudo systemctl restart cups
查看错误日志 sudo tail -f /var/log/cups/error_log
校验配置语法 cupsd -t
检查端口占用 **sudo ss -ltnp
查看磁盘空间 df -h /var
修正 spool 目录权限 sudo chown root:lpadmin /var/spool/cups && sudo chmod 750 /var/spool/cups
将用户加入 lpadmin 组 sudo usermod -aG lpadmin $USER
彻底重装 CUPS sudo apt remove --purge cups && sudo apt autoremove && sudo apt install cups

0