三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Linux cancel 命令详解|CUPS 打印任务取消操作完全指南

Linux cancel 命令详解|CUPS 打印任务取消操作完全指南

1. 命令简介

cancel 命令用于取消一个或多个已提交到打印系统的打印任务。它是 CUPS(Common UNIX Printing System)打印系统管理工具的一部分,允许用户或管理员终止正在等待或正在处理的打印作业。


2. 语法格式

bash

运行

cancel [选项] [打印任务ID...]

说明:

  • 打印任务 ID:可以指定一个或多个打印任务的 ID 号来取消特定作业。如果未指定任何任务 ID,通常需要与 -u 选项配合使用来取消特定用户的所有作业,或与 -a 选项配合取消所有作业。
  • 命令执行后,被取消的打印任务将从打印队列中移除。

3. 常用选项及说明

表格

选项说明
-a取消所有打印任务。此操作通常需要管理员权限,具体取决于打印服务器的配置。
-E强制在与打印服务器(如 CUPS 服务器)建立连接时使用加密(TLS/SSL)。这增强了通信的安全性。
-U username指定连接到打印服务器时进行身份验证所使用的用户名。
-u username指定要取消的打印任务所属的用户。例如,cancel -u john 将取消用户 john 的所有打印任务。普通用户通常只能取消自己的任务。
-h server[:port]指定要连接的目标打印服务器的主机名(或 IP 地址)和可选的端口号。默认通常是本地主机(localhost)和 CUPS 默认端口(631)。例如:-h printserver.company.com 或 -h 192.168.1.10:8631。

4. 示例用法

示例 1:取消一个特定的打印任务

首先使用 lpstat 命令查看当前打印队列以获取任务 ID,然后使用 cancel 取消它。

bash

运行

$ lpstat HP-LaserJet-1018-23 john 1024 Tue 01 Nov 2022 10:15:22 AM CST $ cancel HP-LaserJet-1018-23

示例 2:取消当前用户的所有打印任务

bash

运行

cancel -u $(whoami)

或者明确指定用户名:

bash

运行

$ cancel -u john

示例 3:取消所有打印任务(通常需要管理员权限)

bash

运行

$ sudo cancel -a # 或者直接以root用户执行 # cancel -a

示例 4:连接到远程打印服务器并取消任务

bash

运行

$ cancel -h printserver.example.com -u alice

此命令将尝试连接到 printserver.example.com 的默认 CUPS 端口,并取消用户 alice 的所有作业。

示例 5:使用加密连接取消任务

bash

运行

$ cancel -E -h secureprintsrv:631 HP-Color-15

此命令强制使用加密连接连接到 secureprintsrv 服务器的 631 端口,并取消 ID 为 HP-Color-15 的任务。


5. 注意事项

  • 权限限制:普通用户通常只能取消自己提交的打印任务。要取消其他用户的任务或使用 -a 选项取消所有任务,通常需要 root 权限或 lp 管理员组成员身份。
  • 任务状态:对于已经开始传输到打印机或正在物理打印的任务,cancel 命令可能无法立即停止纸张输出,但会阻止后续数据的发送和队列中任务的保留。
  • 任务 ID:打印任务 ID 的格式可能因打印系统和配置而异(如 printer-name-123 或纯数字 123)。使用 lpstat -o 可以查看准确的作业 ID 列表。
  • 依赖服务:此命令的正常运行依赖于 CUPS 服务(或您使用的其他打印守护进程)处于活动状态。
  • 无确认提示:cancel 命令通常直接执行取消操作而不进行二次确认,使用时请确保指定了正确的任务 ID 或选项。
← 返回列表