Linux如何暂停打印机打印任务?

在Linux系统中,管理打印机状态(如暂停)是日常办公中常见的操作,尤其在需要临时停止打印任务或维护打印机时,Linux系统通常通过CUPS(Common UNIX Printing System)实现打印管理,支持命令行和图形界面两种操作方式,本文将详细介绍Linux暂停打印机的具体方法、操作步骤及注意事项,帮助用户高效完成打印机状态控制。

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,队列中的新任务将被挂起,已发送的任务可能继续处理(取决于打印机型号)。

    linux如何暂停打印机

  • 恢复打印机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等)
学习成本 需记忆命令(如lpclpstat 直观点击,无需记忆命令
功能灵活性 支持批量操作、脚本自动化、精确任务控制 仅支持暂停/恢复整个队列,无法控制单任务
权限要求 sudolpadmin组权限 需普通用户权限(桌面环境默认配置)
适用场景 服务器管理、远程控制、定时任务脚本 日常办公、临时暂停、非技术人员操作

常见问题解决

执行暂停命令后打印机仍在打印

原因

linux如何暂停打印机

  • 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的“暂停打印机”操作仅会暂停打印队列,阻止新的打印任务进入队列,但已发送到打印机的任务可能仍在处理中(尤其是任务已进入打印机的硬件缓冲区时),若需立即停止所有打印,可执行以下操作:

  1. 使用lpc stop暂停队列;
  2. 使用lprm -P [打印机名称] -删除队列中所有任务(表示全部任务);
  3. 若打印机仍在打印,可手动关闭打印机电源(物理断电),待任务清理后重新开机。

问题2:如何通过脚本定时在夜间自动暂停打印机?

解答
可通过cron定时任务结合lpc命令实现,设置每晚23点暂停打印机,早上7点恢复:

  1. 创建脚本文件/usr/local/bin/print_pause.sh
    #!/bin/bash
    # 暂停打印机
    /usr/sbin/lpc stop Epson-XP1500
    echo "$(date): Printer paused" >> /var/log/print_schedule.log
  2. 创建恢复脚本/usr/local/bin/print_resume.sh
    #!/bin/bash
    # 恢复打印机
    /usr/sbin/lpc start Epson-XP1500
    echo "$(date): Printer resumed" >> /var/log/print_schedule.log
  3. 为脚本添加执行权限:sudo chmod +x /usr/local/bin/print_pause.sh /usr/local/bin/print_resume.sh
  4. 编辑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

(0)
酷番叔酷番叔
上一篇 2025年9月22日 09:51
下一篇 2025年9月22日 10:11

相关推荐

  • linux下如何退出终端

    Linux终端中,可输入exit命令或按Ctrl + D组合键来

    2025年8月18日
    7900
  • Linux逐行读取文件哪种方法最高效?

    方法1:使用 while 循环 + read 命令(Bash脚本)适用场景:需要逐行处理并执行复杂操作的Bash脚本,命令示例:while IFS= read -r line; do echo "当前行内容: $line"done < "文件名.txt"解析:whi……

    2025年6月22日
    10400
  • Linux Makefile如何执行?

    在Linux系统中,Makefile是自动化构建的核心工具,它通过定义目标文件、依赖关系和生成规则,简化了编译、链接等重复性操作,Makefile的执行过程本质上是make工具读取并解析Makefile文件,根据依赖关系判断哪些文件需要重新生成,并执行对应的命令,下面详细说明Makefile的执行流程、关键要素……

    2025年9月24日
    7400
  • Linux如何删除变量名?

    在Linux系统中,变量是shell脚本和命令行操作中存储数据的标识符,根据作用域和特性可分为本地变量、环境变量、只读变量、数组变量等,删除变量通常使用unset命令,但不同类型变量的删除方法和注意事项存在差异,本文将详细说明各类变量的删除操作及场景应用,本地变量的删除本地变量(普通变量)仅在当前shell进程……

    2025年9月17日
    7800
  • Linux系统下如何查看CPU的具体型号信息?

    在Linux系统中,CPU型号是评估硬件性能、判断软件兼容性、优化系统配置的关键信息,无论是系统管理员进行性能调优,还是开发者确认编译环境,掌握查看CPU型号的方法都至关重要,本文将详细介绍多种命令行和图形界面方法,涵盖不同场景和权限需求,帮助用户快速获取所需信息,使用lscpu命令:最全面的CPU信息展示ls……

    2025年9月16日
    7700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信