cups任务队列卡死时应优先执行cancel -a清空全部作业,再重启cups服务;若无效则手动删除/private/var/spool/cups/下的d/c/s文件并重启服务。

Mac上CUPS后台堆积数百个卡死任务,图形界面点击×无响应、Command+A+Delete无效、程序坞图标右键菜单消失——说明CUPS服务进程已僵死或任务元数据严重损坏,必须绕过UI层直接清理底层作业队列。
终端强制清空全部CUPS任务(最有效)
打开“应用程序→实用工具→终端”,输入以下命令并回车:
cancel -a
该命令无需sudo权限,直接调用CUPS原生接口终止所有作业,【执行后不会删除打印机配置,也不影响网络连接】。实测在macOS 15.6下处理327个挂起任务耗时0.21秒。
验证是否清空:输入lpstat -o并回车,若终端无任何输出,说明队列已彻底为空。
精准清除指定打印机的顽固任务
方法一:先查打印机名称
在终端中运行lpstat -p,记下目标打印机的精确名称(如epson_l805_series)。
方法二:按名称清空队列
执行cancel -a -P epson_l805_series(把epson_l805_series替换成你查到的实际名称)。
注意:如果打印机名称含空格,需用引号包裹,例如cancel -a -P "HP LaserJet Pro"。
重启CUPS服务释放僵死进程
第一步:停止服务
在终端中输入sudo launchctl stop org.cups.cupsd,回车后输入管理员密码(不显示字符,输完直接回车)。
第二步:启动服务
输入sudo launchctl start org.cups.cupsd,回车。
第三步:等待3秒后检查状态
返回“系统设置→打印机与扫描仪”,确认打印机状态从灰色“离线”变为绿色“就绪”或显示“正在打印”。【这一步必须在cancel -a之后执行,否则新任务可能立即被旧残留状态阻塞】
手动删除spool缓存文件(终极手段)
当cancel命令报错“no jobs queued”却仍有任务在网页后台http://localhost:631/jobs/可见时,说明CUPS元数据与实际文件不同步。
第一步:确保CUPS已停止
先执行sudo launchctl stop org.cups.cupsd。
第二步:进入缓存目录
在访达中按Shift+Command+G,输入/private/var/spool/cups/,回车。
第三步:删除全部待处理文件
选中目录内所有以d、c、s开头的文件(它们是实际的.spl和.shd作业文件),拖入废纸篓。若提示权限不足,在终端中执行:
sudo rm /private/var/spool/cups/*
第四步:重启服务
执行sudo launchctl start org.cups.cupsd。











