在Linux系统中,管理打印机状态(如暂停)是日常办公中常见的操作,尤其在需要临时停止打印任务或维护打印机时,Linux系统通常通过CUPS(Common UNIX Printing System)实现打印管理,支持命令行和图形界面两种操作方式,本文将详细介绍Linux暂停打印机的具体方法、操作步骤及注意事项,帮助用户高效完成打印机状态控制。
Linux打印系统基础:CUPS简介
CUPS是Linux系统默认的打印服务,负责管理打印队列、处理打印任务,并提供打印接口,无论是本地打印机还是网络打印机,均需通过CUPS进行控制,在执行暂停操作前,需确保CUPS服务已运行:可通过sudo systemctl status cups
检查状态,若未运行,使用sudo systemctl start cups
启动。
命令行方式暂停打印机(适合服务器/远程管理)
命令行方式适合无图形界面的服务器环境,或需要批量、自动化操作的场景,常用工具包括lpc
(打印机控制命令)、lpadmin
(打印机管理)及lpstat
(状态查看)。
查看打印机当前状态
暂停前需确认打印机状态及队列情况,使用以下命令:
-
查看所有打印机状态:
lpstat -p
输出示例:printer Epson-XP1500 is idle. enabled since Mon 10 Aug 2023 10:30:00 CST printer HP-LaserJet is printing. enabled since Mon 10 Aug 2023 09:15:00 CST
若状态为
idle
(空闲)或printing
(打印中),可执行暂停操作;若为disabled
(已禁用),需先启用。 -
查看打印队列任务:
lpq -P [打印机名称]
例如查看Epson-XP1500的队列:lpq -P Epson-XP1500
,输出当前打印任务ID、用户、文件大小等信息。
暂停整个打印机队列
使用lpc
命令控制打印机状态,需管理员权限(sudo
):
-
暂停打印机:
sudo lpc stop [打印机名称]
例如暂停Epson-XP1500:sudo lpc stop Epson-XP1500
执行后,打印机状态变为paused
,队列中的新任务将被挂起,已发送的任务可能继续处理(取决于打印机型号)。 -
恢复打印机:
sudo lpc start [打印机名称]
例如恢复Epson-XP1500:sudo lpc start Epson-XP1500
,队列将自动继续处理剩余任务。
仅暂停特定打印任务(而非整个队列)
若需暂停单个任务(如误打印大文件),可使用lprm
命令删除任务(暂停后删除):
- 删除指定任务:
sudo lprm -P [打印机名称] [任务ID]
例如删除Epson-XP1500队列中任务ID为123的任务:sudo lprm -P Epson-XP1500 123
若需暂停任务而不删除,需通过CUPS Web界面操作(见后文)。
图形界面方式暂停打印机(适合桌面用户)
对于使用GNOME、KDE等桌面环境的用户,可通过系统设置或CUPS Web界面直观操作,无需记忆命令。
通过CUPS Web界面管理
CUPS提供基于浏览器的管理界面,适合所有Linux发行版:
- 访问Web界面:在浏览器地址栏输入
http://localhost:631
(若为远程打印机,替换为http://[服务器IP]:631
)。 - 登录管理:点击“管理”→“管理打印机”,输入系统用户名密码(需为
lpadmin
组成员,或使用sudo usermod -aG lpadmin $USER
添加用户)。 - 暂停打印机:在打印机列表中找到目标打印机(如“Epson-XP1500”),点击“暂停打印”按钮,状态将变为“已暂停”。
- 恢复打印:点击“继续打印”即可恢复队列。
通过系统设置中的打印机工具
主流桌面环境自带打印机管理工具,操作更简化:
- GNOME打印机设置:进入“设置”→“打印机”,点击目标打印机右侧的“菜单”按钮,选择“暂停打印”。
- KDE打印管理:打开“系统设置”→“打印”,选择打印机后点击“暂停”图标。
- Ubuntu/Mint的“打印”应用:在应用菜单中搜索“打印”,选择打印机后点击“暂停”按钮。
图形界面的优势在于可视化操作,适合不熟悉命令行的用户,但功能可能略少于命令行(如无法直接暂停特定任务)。
不同方法的对比与选择
为帮助用户根据场景选择合适方式,以下通过表格对比命令行与图形界面的优缺点:
对比维度 | 命令行方式 | 图形界面方式 |
---|---|---|
操作环境 | 服务器/SSH远程/无图形界面 | 桌面环境(GNOME/KDE等) |
学习成本 | 需记忆命令(如lpc 、lpstat ) |
直观点击,无需记忆命令 |
功能灵活性 | 支持批量操作、脚本自动化、精确任务控制 | 仅支持暂停/恢复整个队列,无法控制单任务 |
权限要求 | 需sudo 或lpadmin 组权限 |
需普通用户权限(桌面环境默认配置) |
适用场景 | 服务器管理、远程控制、定时任务脚本 | 日常办公、临时暂停、非技术人员操作 |
常见问题解决
执行暂停命令后打印机仍在打印
原因:
- CUPS服务未正常运行;
- 打印机已接收任务并进入打印缓冲区,暂停操作仅阻止新任务入队;
- 权限不足(未使用
sudo
)。
解决方法:
- 重启CUPS服务:
sudo systemctl restart cups
; - 等待当前打印任务完成,或强制重启打印机(物理断电重启,需谨慎);
- 确认命令前添加
sudo
,如sudo lpc stop [打印机名称]
。
图形界面中“暂停打印”按钮为灰色
原因:
- 用户不在
lpadmin
组; - CUPS服务未启动;
- 打印机驱动异常。
解决方法:
- 添加用户到
lpadmin
组:sudo usermod -aG lpadmin $USER
,注销后重新登录; - 启动CUPS服务:
sudo systemctl start cups
; - 重新安装打印机驱动:进入CUPS Web界面,删除打印机后重新添加。
相关问答FAQs
问题1:为什么我暂停打印机后,之前的打印任务还在继续?
解答:
Linux的“暂停打印机”操作仅会暂停打印队列,阻止新的打印任务进入队列,但已发送到打印机的任务可能仍在处理中(尤其是任务已进入打印机的硬件缓冲区时),若需立即停止所有打印,可执行以下操作:
- 使用
lpc stop
暂停队列; - 使用
lprm -P [打印机名称] -
删除队列中所有任务(表示全部任务); - 若打印机仍在打印,可手动关闭打印机电源(物理断电),待任务清理后重新开机。
问题2:如何通过脚本定时在夜间自动暂停打印机?
解答:
可通过cron
定时任务结合lpc
命令实现,设置每晚23点暂停打印机,早上7点恢复:
- 创建脚本文件
/usr/local/bin/print_pause.sh
:#!/bin/bash # 暂停打印机 /usr/sbin/lpc stop Epson-XP1500 echo "$(date): Printer paused" >> /var/log/print_schedule.log
- 创建恢复脚本
/usr/local/bin/print_resume.sh
:#!/bin/bash # 恢复打印机 /usr/sbin/lpc start Epson-XP1500 echo "$(date): Printer resumed" >> /var/log/print_schedule.log
- 为脚本添加执行权限:
sudo chmod +x /usr/local/bin/print_pause.sh /usr/local/bin/print_resume.sh
。 - 编辑cron任务:
crontab -e
,添加以下内容:# 每晚23点暂停打印机 0 23 * * * /usr/local/bin/print_pause.sh # 每天早上7点恢复打印机 0 7 * * * /usr/local/bin/print_resume.sh
保存后,cron将自动定时执行脚本,实现打印机自动暂停与恢复。
通过以上方法,用户可根据自身需求选择命令行或图形界面灵活控制打印机状态,确保打印任务按需管理,提升办公效率。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28222.html