enq 命令
用途
对文件进行排队。
语法
处理文件
enq [ - ] [ -B CharacterPair ] [-c ] [ -C ] [ -G ] [ -j ] [ -m Text ] [ -M File ] [ -n ] [ -N Number ] [ -o Option ] [ -P Queue ] [ -r ] [ -R Number ] [ -t "User" ] [ -T 标题 ] [ -Y ] [ -Z 名称 ] 文件
要更改打印作业的优先级,请输入:
显示状态
enq [ -q | -A ] [ -L ] [ -W ] [ -e ] [ -#JobNumber ] [ -u 名称 ] [ -w 秒数 ] [ -s ]
要更改队列和队列守护程序状态,请输入:
恩格 [ -d ] [ -D ] [ -G ] [ -K ] [ -L ] [ -q | -一个 ] [ -U ]
取消选项
要挂起或释放打印作业,或者将其移到另一队列,请输入:
enq { -h | -p | -Q NewQueue } { -# JobNumber [ -P Queue ] | -u 用户 | -P Queue }
要使打印作业排队和挂起,请输入:
恩格 -H 文件 ...
描述
enq 命令是用来为向共享资源(典型是打印机设备)的请求进行排队的通用实用程序。 使用 enq 命令对请求进行排队,取消请求,更改请求的优先级并显示队列和设备的状态。
enq 命令有五个不同的语法图,因为全部的标志不是说一起工作。 一些标志用作文件处理并接受 FileName 作为一个选项。 其他的标志用来更改打印作业的优先级、显示状态、更改队列或队列守护程序的状态以及取消打印作业。
要对特定队列上的文件进行排队,请使用 -P 标志 (-P 队列)。 如果存在超过一个设备对一个队列服务,您还可以通过在队列名后面指定该设备(:device )来请求一个特定的设备。 如果您没有指定一个设备,那么该作业被送到第一个可用的设备中。 如果您没有指定文件,enq 命令会将标准输入复制到一个文件中,并对它进行排队打印。
enq 命令请求可具有与它们关联的操作程序消息。 此功能在分布式环境或者多用户系统中是很有用的。 这些消息用来作为一个请求告诉打印机运算符这样的信息,在允许作业打印之前要往打印机装入特殊的表单或者不同颜色的纸张。 这些消息是使用 命令 和 -M 标志指定的。 qdaemon 命令将处理 恩格 命令请求。 当 qdaemon 准备开始一个具有相关消息的请求时,系统会在 qdaemon 进程运行所在的机器的控制台上显示此消息。 消息文本伴随着一个提示,告诉打印机运算符该如何通知该请求继续执行或者如何取消该请求。
由 enq -A 命令生成的显示包含了远程队列的两个条目。 第一个条目包含客户机的本地队列和本地设备名以及它的状态信息。 第二个条目紧跟其后;它包含客户机的本地队列名(再次),后跟远程队列名。 任何提交给远程队列的作业都会先在本地显示,然后移到远程设备,因为将在远程机器上处理该作业。
由于状态命令会与远程机器进行通信,因此状态显示可能偶尔会在等待来自远程机器的响应时貌似挂起。 如果无法在两台机器之间建立连接,那么该命令最终会超时。
标志
文件处理选项
如果您给于 enq 命令一个文件名的列表,它会对它们全部进行排队,以在缺省的设备或者指定的设备上进行文件处理
| 项 | 描述 |
|---|---|
| - | 导致 enq 命令当作过滤器来操作。 如果您没有指定一个文件或者多个文件,enq 命令自动读取标准输入。 然而,如果您指定了一个文件的话,您还可以使用短划线(-)来强制 enq 命令读取标准输入。 短划线(-)实际上不是一个标志,而是一种特殊类型的文件名。 因此,它必须出现在命令行上指定的所有其他标志后面。 |
| -B CharacterPair | 按照后面的方式,根据 CharacterPair 的值控制分段页面的打印。 (n = never, a = always, g = group. 第一个字符用作报头,第二个字符用作报尾。)
/etc/qconfig 文件中的头和尾部节定义了分类群发页面的缺省处理。 注: 在远程打印环境中,缺省值是打印标题页,而不是尾部页。
|
| -c | 复制文件。 为了节省磁盘空间,enq 命令会记住文件名称但不会真的复制文件本身。 如果您想在等待当前拷贝打印的时候继续修改文件,请使用 -c 标志。 |
| -C | 指定对于错误消息和作业完成通知,将使用 邮件 命令而不是 写 命令。 (使用此标志对于编写 PostScript 应用程序很有用,因为它允许来自打印机的更好的反馈。) 错误消息和作业完成消息 (均由 皮奥比 命令生成) 以及从打印机读取的任何数据也将通过邮件发送回。 -C 标志仅适用于本地打印作业。 如果希望当提交到远程打印机的作业完成时被通知,请使用 -n 标志来接收邮件消息。 注: 有一些消息无法以任何方式从 qdaemon 和打印机后端进行重定向。 这些消息是系统错误,并且会直接发送到 /dev/console 文件。
|
| -j | 指定该消息Job number is: nnn, 其中nnn是分配的作业号,显示到标准输出。 仅当作业提交给本地打印队列时,才会发生这种情况。 |
| 命令 文本 | 用 enq 命令请求提交一个操作程序消息。 指定的文本包含了此消息。 |
| -M 文件 | 用 enq 命令请求提交一个操作程序消息。 指定的文件包含了该消息的文本。 |
| -n | 当您的作业完成时通知您。 如果还使用了 -t 标志,那么 恩格 命令还会通知用户请求所针对的用户 (请参阅 -t 标志)。 |
| -N 数字 | 打印文件的 Number 个拷贝。 通常,一个文件只打印一次。 |
| -o 选项 | 指定将特定于后端的标志传递到后端。 因此,对于每个队列,都存在本节中未描述但可包括在 enq 命令行上的标志。 请参阅 皮奥比 命令以获取这些标志的列表。 |
| -P 队列 | 指定作业要送到的队列。 可以通过输入以下命令来指定队列上的特定设备:-P Queue:Device. |
| -r | 在成功打印文件之后将其除去。 |
| -R 数字 | 将当前作业的优先级设置成 Number 。 此标志在作业提交的时候用到。 在提交作业后,使用 一 标志来改变优先级。 越大的数指定越高的优先级。 缺省的优先级为 15。 对大多数用户来说最大的优先级为 20,有 root 用户权限的用户的最大的优先级为 30。 |
| -t "用户" | 将输出标记为交付给 User。 通常,会对该输出加标签,以便传送至发出 enq 命令请求的人员的用户名。 User 的值必须是单个字,满足的要求与常规用户标识的要求相同。 |
| -T 标题 | 将标题放在标题页上,并在指定 -q 标志时显示。 通常,作业的标题就是该文件的名称。 如果 恩格 命令从标准输入中读取,那么作业标题为 STDIN. # 其中 # 是 恩格 命令的进程标识。 |
| -y | 告诉 enq 命令忽略该标志之后的命令行其余的部分。 这对于发现队列是否有效 (如果在 /etc/qconfig 文件中) 很有用。 例如,输入enq -P lp4 -Y如果行式打印机 lp4 是有效队列,那么将返回退出值 0; 否则,将返回非零值。 使用此标志也有利于强制 qdaemon 命令重新摘要 /etc/qconfig 文件。 |
| -Z 姓名 | 指定远程打印作业的始发站。 |
打印作业优先级选项
| 项 | 描述 |
|---|---|
| -a 数字 | 将指定作业的优先级更改成 Number 。 在输入带有此标志的 enq 命令之前,必须提交要打印的作业。 请参阅 -R 标志以获取优先级的描述。 请使用 -# 标志来指定作业号。 此标志只对本地打印作业有效。 |
| -# JobNumber | 指定由 enq 命令 -q 或 enq -a 命令使用的作业编号,并在状态输出中仅显示指定的作业。 注意:
|
显示状态选项
| 项 | 描述 |
|---|---|
| -一个 | 为所有的队列提供状态。 这就像对qconfig 文件中的每个队列分别运行 enq -q 命令一次。 |
| -e | 从不在 qdaemon 命令控制下的队列中排除状态信息。 从此类队列获取的状态可能采用不同格式表示。 -e 标志能够与任何标志联合使用。 |
| -L | 指定长状态。 此标志可以与 -一个, -q或 -W 标志配合使用。 如果同时使用 -L 标志和 -W 标志,那么结果会采用以分号分隔的格式显示打印作业的长状态。 使用 -L 标志来显示要在一个打印作业中打印的多个文件。 |
| -q | 显示缺省队列的状态。 LPDEST
和 PRINTER 环境变量控制着缺省打印机的名。 如果 LPDEST 环境变量包含了一个值的话,那么此值永远都是最先使用。 如果
LPDEST 变量没有值,那么 enq 命令会使用 PRINTER 环境变量。 如果
PRINTER 环境变量没有包含任何值,那么
enq 命令会使用系统缺省值。 注意:
|
| -s | 获取打印队列的状态,而不列示任何文件。 |
| -u 名称 | 指定打印作业状态的用户名。 |
| -w 秒 | 指定队列状态的连续输出,每个指定的 秒 更新屏幕,直到队列为空 (请参阅 勒普克 命令)。 当队列为空时,进程停止。 此标志仅与 -q 标志或者 -一个 标志或者 -L 标志一起使用。 |
| -W | 指定宽状态格式,它具有更长的队列名、设备名和作业号。 此标志可以与 -一个, -q或 -L 标志配合使用。 如果同时使用 -L 和 -W 标志,那么结果会采用以分号分隔的格式显示打印作业的长状态。 |
更改队列和队列守护程序状态选项
| 项 | 描述 |
|---|---|
| -d | 在 /etc/qconfig 文件上运行 digest 命令。 一旦 digest 完成,任何对 /etc/qconfig 文件的更改都会反应到 /etc/qconfig.bin 文件中。 用户必须有 root 用户权限才能运行此选项。 |
除了对所有用户可用的前面的那些标志之外 enq 命令还接受以下标志,当它们由具有 root 用户权限的用户输入时。 root 用户权限意味着您是 root 用户或者您属于 printq 组。
| 项 | 描述 |
|---|---|
| -D | 设备关闭。 关闭与队列关联的设备。 qdaemon 进程不再将作业发送到设备,并且输入 恩格 -q 命令将其状态显示为 DOWN。 任何当前运行在该设备上的作业都允许完成。 |
| -g | 优雅死亡。 在所有当前运行的作业完成时结束 qdaemon 进程。 此标志的使用是唯一的将 qdaemon 进程关闭的干净的方式。 使用 杀 命令可能导致问题,例如,队列中挂起的作业。 如果 qdaemon 进程正运行在 srcmstr 下的话(缺省配置),enq -G 不会防止 qdaemon 自动重启动。 您必须使用 chssys 命令,此命令会更改缺省的配置并且防止 qdaemon 进程的自动重启。 以下命令: 在 enq -G 命令之前发出,防止 qdaemon 命令自动重启。 以下命令: 会手动重新启动 qdaemon 进程。 |
| -K | 与 -D 标志的作用相同,但所有当前作业都被终止。 它们留在队列中,当设备打开时会重新运行。 |
| -L | 指定长状态。 此标志可以与 -一个, -q或 -W 标志配合使用。 使用 -L 标志来显示要在一个打印作业中打印的多个文件。 |
| -U | 启用与队列关联的设备。 qdaemon 进程再次向其发送作业,执行 enq -q 命令显示其状态为就绪。 |
取消选项
| 项 | 描述 |
|---|---|
| -X | 取消打印您的作业。 如果您有 root 用户权限的话,那么在该指定队列中的所有的作业都会被删除。 该标志只有在本地打印作业中才有效。 |
| -x 数字 | 取消指定作业 Number 的打印 |
| -P 打印机 | 指定 Printer,这里或者所有的作业或者选定的作业编号要被取消。 |
挂起和释放打印作业选项
| 项 | 描述 |
|---|---|
| -# JobNumber | 指定要保持或释放的打印作业的编号。 |
| -h | 保持指定的打印作业 |
| -h | 对用 File 参数表示的文件进行排队和保持。 |
| -p | 释放指定的打印作业。 |
| -P 队列 | 指定要被保持或释放的打印队列。 |
| -u 用户 | 指定打印作业要被保持或释放的用户。 |
移动打印作业选项
| 项 | 描述 |
|---|---|
| -# JobNumber | 指定要被移动的打印作业的编号 |
| -P 队列 | 指定要被移动的打印队列。 Queue 变量值可以是一个队列名或者有队列:设备名的形式。 |
| -Q NewQueue | 指定打印作业移到的目标队列。 NewQueue 变量值可以是队列名的形式或者是队列:设备名的形式。 |
| -u 用户 | 指定打印作业要被移动的用户。 |
安全性
审计事件:
| 事件 | 信息 |
|---|---|
| ENQUE_admin | 队列名,设备名,作业名,用户名 |
示例
- 要打印文件memo在缺省打印机上,输入:
enq memo - 要打印文件prog.c使用页码,输入:
pr 命令会在每页顶部放置一个标题,该标题包括最近一次修改该文件的日期、该文件的名称和页码。 enq 命令然后会打印该文件。pr prog.c | enq - 要打印带有页码的文件,从标准输入中读取,请输入:短划线 (-) 特殊文件名告诉 enq 命令要从标准输入读取。 如果命令行上存在文件名,那么通常,enq
命令不会从标准输入进行读取。 它还表示打印的顺序。 普雷 命令将创建文件的页码编号版本x并将其传递到 enq 命令,该命令将在 /var/spool/qdaemon 文件中创建包含该输出的临时文件。
恩格 命令创建包含四个文件的作业,并将其提交到名为bill它打印出fn1文件两次。 然后,它会显示 pr 命令的输出,无论该输出是什么内容。 最后,它打印文件fn3. 为了分类群发页面的目的,这四个文件被视为一个作业。 已发送通知 (-n标志) 当作业完成时。 自-r指定了标志,fn1和fn3在作业完成时除去文件。 会始终删除由短划线 (-) 文件创建的临时文件。
pr 命令会在每页顶部放置一个标题,该标题包括最近一次修改该文件的日期、该文件的名称和页码。 enq 命令然后会打印该文件。
- 要打印文件,请执行以下操作:report配置的下一个可用打印机上的fred队列,输入:
enq -P fred report - 要打印多个以前缀开头的文件sam配置的下一个可用打印机上的fred队列,输入:
所有以前缀开头的文件sam包含在一个打印作业中。 通常状态命令只显示打印作业的标题,这种情况下就是队列中的第一个文件名除非 -T 标志指定了不同的值。 要想列示打印作业中所有文件的名称,请使用长状态命令 enq -A -L.enq -P fred sam* - 要检查打印队列以了解文件是否仍然在等待打印,请输入:enq -q此命令会显示用户缺省队列的状态。 如果该文件还没有被打印,那么它会出现在队列状态列表中。 系统缺省的队列被定义成在 /etc/qconfig[.bin] 文件中的第一个队列。 用户可以通过设置和导出用 PRINTER 环境变量将他们自己的缺省值覆盖。
- 要显示非缺省队列的状态,请执行以下操作:lp0,请输入:
- 要获取长队列状态,请输入:enq -L
- 要获取所有队列的状态,请输入:enq -A
- 要获取所有队列的长状态,请输入:
- 要获取缺省队列的状态,请以宽格式输入:enq -W
- 要获取所有队列的宽状态,请输入:
- 要停止打印一个作业(一个作业是一个或多个文件),请输入:enq -x 413此命令会取消您先前进行的打印作业请求。 从通过输入 enq -q 命令获取的列表中获取编号。 如果正在打印该作业,那么打印机会立即停止。 如果尚未打印该作业,那么会从队列中将其除去,以便不打印该作业。 如果该作业不在队列中,那么 enq 命令会显示一条类似于以下输出的消息:
no such request from you -- perhaps it's done? - 要断开打印机与队列系统的连接,请输入:输入此命令将阻止将 恩格 命令请求发送到为以下项提供服务的打印机:lp0队列。 如果正在打印文件,那么允许将它打印完。 您必须能够运行 qadm 命令,才能运行 enq 命令。注: 为指定队列提供服务的打印机由设备节名称命名,如 /etc/qconfig[.bin] 文件中所示。
- 要使用缺省打印机上的 皮奥比 命令后端来打印带有页码的文件,请输入:enq -o -p filename该-p恩格 命令未查看此标志。 该-o标志指示 恩格 命令将下一项 (可以用引号括起来) 传递到未更改的后端。 因此, 恩格 命令会传递-p标记为 qdaemon 进程,该进程又将其传递到后端 皮奥比。 该-p标志使 piobe 运行 /usr/bin/pr 过滤器以在向设备提供数据之前将页码应用于文档。 多个选项可以在引号中给出,前面有一个 -o 标记。 多个选项还可以不在引号中给出,每个选项前面有一个 -o 标记。
- 假定 qconfig 文件包含以下信息:
并提供了以下命令:qdaemon 进程运行以下命令:/usr/bin/diff有两个参数的程序,其中一个是临时文件名,另一个是临时文件名/etc/hosts中。 两个文件之间唯一的区别就是其中一个是在 pr 命令中运行的。 该/tmp/hello文件包含两个文件之间的差异。 qdaemon 进程不会创建以下文件:/tmp/hello文件 (如果它不存在)。qname: device = fred fred: file = /tmp/hello backend = /usr/bin/sh /usr/bin/diff - 以下命令:enq -m'i want pink paper for this job' /etc/passwd会在打印作用要打印之前将指定的操作程序消息发送到操作程序的控制台上。 操作程序必须对此消息进行响应,来取消或者继续该作业。enq -M pink /etc/passwd此命令完成相同的事情,只有消息包含在一个名为pink.
- 要取消所有作业,请执行以下操作:fred队列,输入:如果输入此命令的用户具有 root 用户权限,那么该命令中的所有作业fred队列。 如果用户没有 root 用户权限,那么只有该队列中的用户的作业会被删除。
- 要将指定的文件排队MyFile并返回MyFile 民主联合报 文件的作业号,请输入:enq -j MyFile
- 保存打印作业号310,请输入:释放打印作业号上的挂起310,请输入:enq -p -#310
- 保存队列上的所有打印作业lp0,请输入:要释放lp0队列,输入:enq -p -P lp0
- 保存由以下对象创建的所有打印作业:fred,请输入:要释放由以下对象创建的打印作业:fred,请输入:enq -p -u fred
- 移动作业号318排队lp0,请输入:控制移动打印作业的标志同保持打印文件的标志的工作方式是一样的。 保持标志和变量在前面的示例中介绍了。
文件
| 项 | 描述 |
|---|---|
| /usr/sbin/qdaemon | 排队守护程序。 |
| /etc/qconfig | 排队配置文件。 |
| /var/spool/lpd/qdir/* | 排队请求。 |
| /var/spool/lpd/stat/* | 有关设备状态的信息。 |
| /var/spool/qdaemon/* | 已排队文件的临时副本。 |
| /etc/qconfig.bin | /etc/qconfig 文件的二进制摘要版本。 |