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 或选项。