enq [ - ] [ -B CharacterPair ] [ -c ] [ -C ] [ -G ] [ -j ] [ -m Text ] [ -M File ] [ -n ] [ -N Number ] [ -o Option ] [ -P Queue ] [ -r ] [ -R Number ] [ -t "User" ] [ -T Title ] [ -Y ] [ -Z Name ] File
enq [ -q | -A ] [ -L | -W ] [ -e ] [ -# JobNumber ] [ -u Name ] [ -w Seconds ] [ -s]
enq [ -d ] [ -D ] [ -G ] [ -K ] [ -L ] [ -q | -A ] [ -U ]
enq [ -X ] [ -xNumber ] [ -PPrinter ]
enq { -h | -p | -Q NewQueue } { -# JobNumber [ -P Queue ] | -u User | -P Queue }
enq -H File ...
enq 命令是用来为向共享资源(典型是打印机设备)的请求进行排队的通用实用程序。使用 enq 命令对请求进行排队,取消请求,改变请求的优先级并显示队列和设备的状态。
enq 命令有五个不同的语法图,因为全部的标志不是说一起工作。一些标志用作文件处理并接受 FileName 作为一个选项。其他的标志用来改变打印作业的优先级、显示状态、改变队列或队列守护进程的状态以及取消打印作业。
要想对特定队列中的文件进行排队,请使用 -P 标志(-P Queue)。如果有超过一个设备对一个队列服务,您还可以通过在队列名后面指定该设备(:device)来请求一个特定的设备。如果您没有指定一个设备,则该作业被送到第一个可用的设备中。如果您没有指定文件,enq 命令会将标准输入拷贝到一个文件中,并对它进行排队打印。
enq 命令的请求可以带有运算符消息。这个功能在分布式环境或者多用户系统中是很有用的。这些消息用来作为一个请求告诉打印机运算符这样的信息,在允许作业打印之前要往打印机装入特殊的表单或者不同颜色的纸张。这些消息由 -m 和 -M 标志来指定。qdaemon命令会处理 enq 命令的请求。当 qdaemon 准备开始一个具有相关消息的请求时,系统会在 qdaemon 进程运行所在的机器的控制台上显示这个消息。消息文本伴随着一个提示,告诉打印机操作程序该如何通知该请求继续执行或者如何取消该请求。
由 enq -A 生成的显示包含了远程队列的两个条目。第一个条目包含了客户机的本地队列和本地设备名以及它的状态信息。第二个条目紧跟其后;它包含了客户机的本地队列名(再次)和其后的远程队列名。任何提交给远程队列的作业在本地会首先显示,并因为该作业被远程机器处理移动到远程设备上。
由于状态命令会同远程机器进行通信,因此状态显示可能偶然会在等待远程机器的响应时挂起。如果不能在两台机器上建立连接的话,该命令将最终超时。
注意:
如果您给于 enq 命令一个文件名的列表,它会对它们全部进行排队,以在缺省的设备或者指定的设备上进行文件处理
- | 导致 enq 命令当作过滤器来操作。如果您没有指定一个文件或者多个文件,enq 命令自动读取标准输入。然而,如果您指定了一个文件的话,您还可以使用短划线(-)来强制 enq 命令读取标准输入。短划线(-)实际上不是一个标志,而是一种特殊类型的文件名。因此,它必须位于该命令行所有指定的其他的标志之后。 |
-B CharacterPair | 按照后面的方式,根据 CharacterPair 的值控制分段页面的打印。(n = never, a = always, g = group. 第一个字符用作报头,第二个字符用作报尾。)
/etc/qconfig 文件中的报头和报尾节定义了缺省的分段页面的处理方法。 注意:在远程打印环境中,缺省值是打印报头页而不是报尾页。 |
-c | 拷贝文件。为了节省磁盘空间,enq 命令会记住文件名称但不会真的拷贝文件本身。如果您想在等待当前拷贝打印的时候继续修改文件,请使用 -c 标志。 |
-C | 指定了 mail 命令用作错误消息和作业完成的通知,而不是 write 命令。(使用该标志对于写 PostScript 应用程序很有用,因为它允许从打印机得到更好的反馈)。错误消息和作业完成的消息
(都是由 piobe 命令生成的)以及任何从打印机读入的数据也会用邮件送回。
-C标志只适用于本地打印作业。如果在送到远程打印机的作业完成时您还想得到通知,请使用 -n 标志来接收邮件消息。 注意: 有些消息用任何方式都不能从 qdaemon 和打印机后端重新定向。这些是系统错误,会被直接送到 /dev/console 文件中。 |
-j | 指定将消息 Job number is: nnn,(其中 nnn 是指定的作业号)显示给标准输出。仅在作业提交到本地打印队列中时才会发生这种情况。 |
-m Text | 用 enq 命令请求提交一个操作程序报文。指定的文本包含了这个报文。 |
-M File | 用 enq 命令请求提交一个操作程序报文。指定的文件包含了该报文的文本。 |
-n | 当您的作业完成时通知您。如果 -t标志也被使用的话,enq 命令还会通知该请求的用户(见-t 标志)。 |
-N Number | 打印文件的 Number 个拷贝。通常,一个文件只打印一次。 |
-o Option | 指定将针对后端的标志传送到后端。这样,对于每个队列,有本文章中没有介绍可以包括在 enq 命令行中的标志。参考 piobe 命令获取这些标志的列表。 |
-P Queue | 指定作业要送到的队列。可以通过输入 -P Queue:Device. 来指定队列中的一个特定的设备。 |
-r | 在成功完成打印后除去该文件。 |
-R Number | 将当前作业的优先级设置成 Number。这个标志在作业提交的时候用到。利用 -a 标志来在作业提交后改变其优先级。越大的数指定越高的优先级。默认的优先级为15。对大多数用户来说最大的优先级为 20,有 root 用户权限的用户的最大的优先级为 30。 |
-t "User" | 对要分发给 User 的输出加标签。通常,该输出被标记以分发给发布 enq 命令请求的用户名。User 的值必须是一个单字,符合规则用户标识的同样的要求。 |
-T Title | 将标题放到报头页中,并在 -q 标志被指定时显示出来。通常,作业的标题就是该文件的名称。如果 enq 命令是从标准输入中读取的话,作业的标题就是 STDIN.#,这里 # 是 enq 命令的进程 ID。 |
-Y | 告诉 enq 命令忽略该标志之后的命令行其余的部分。这对发现队列是否有效是很有用的(如果它是在 /etc/qconfig 文件中的话)。例如,输入 enq -P lp4 -Y 会返回出口值 0,如果行打印机lp4 是有效队列的话;否则会返回一个非零值。使用这个标志对于强制 qdaemon 命令再消化 /etc/qconfig 文件是很有用的。 |
-Z Name | 指定远程打印作业的始发站。 |
-a Number | 将指定作业的优先级改变成 Number。该作业必须在输入带有该标志的 enq 命令之前已经被提交打印。参考 -R 标志获取优先级的描述。用 -# 标志来指定作业的编号。该标志仅对本地打印作业有效。 |
-# JobNumber | 指定 enq -q 命令或者 enq -a 命令使用的作业编号,并只显示在状态输出中指定的作业。
注意: |
-A | 为所有的队列提供状态。这就象对 qconfig 文件中每个队列运行一次 enq -q 命令一样。 |
-e | 将不是在 qdaemon 命令的控制下的队列处来的状态信息排除在外。从这样的队列处得到的状态可能有不同的格式。-e 标志可以同任何标志的组合一起使用。 |
-L | 指定长状态。该标志可以与 -A 标志或者 -q 标志一起使用。它不能同 -W 标志一起使用。如果 -L 标志和 -W 标志同时被使用的话,先指定的那个占先。使用 -L 标志来显示要在一个打印作业中打印的多个文件。 |
-q | 显示缺省队列的状态。LPDEST 和 PRINTER 环境变量控制着缺省打印机的名。如果 LPDEST 环境变量包含了一个值的话,那么这个值永远都是最先使用。如果 LPDEST 变量没有值,则 enq 命令会使用 PRINTER 环境变量。如果 PRINTER 环境变量没有包含任何值,那么 enq命令会使用系统缺省值。
声明: |
-s | 获取打印队列的状态,而不列出任何文件。 |
-u Name | 指定打印作业状态的用户名。 |
-w Seconds | 指定队列状态的连续输出,每隔指定的 Seconds 就更新一次屏幕,直到队列为空(见 lpq 命令)。当队列为空时,进程停止。该标志只能与 -q标志或者-A 标志或者 -L 标志一起使用。 |
-W | 指定宽状态格式,它具有更长的队列名、设备名和作业编号。作业编号的信息在 AIX 4.3.2 中或者更后面的版本中可得。该标志可以同 -A 标志或 -q 标志一起使用。它不能同 -L 标志一起使用。如果 -L 标志和 -W 标志同时被使用的话,先指定的那个占先。 |
-d | 运行 digest 命令,该命令存在于 /etc/qconfig 文件中。一旦 digest 完成,任何对 /etc/qconfig 文件的改变都会反应到 /etc/qconfig.bin 文件中。用户必须有 root 用户权限才能运行这个选项。 |
除了对所有用户可用的前面的那些标志之外 enq 命令还接受下列标志,当它们由具有 root 用户权限的用户输入时。root 用户权限意味着您是 root 用户或者您属于 printq 组。
注意: 下列标志只能用在本地打印作业中。
-D | 设备关闭。关闭与队列相关的设备。qdaemon 进程不再向该设备发送作业,并且输入 enq -q 命令会显示状态为 DOWN。任何当前运行在该设备上的作业都允许完成。 |
-G | 优雅死亡。在所有当前运行的作业完成时结束 qdaemon 进程。这个标志的使用是唯一的将 qdaemon 进程关闭的干净的方式。kill 命令的使用可能会引发问题,如作业挂在队列中。
如果 qdaemon 进程正运行在 srcmstr 下的话(缺省配置),enq -G 不会防止 qdaemon 自动重启动。您必须使用 chssys 命令,这个命令会改变缺省的配置并且防止 qdaemon 进程的自动重启。下列命令 : chssys -s qdaemon -O 在 enq -G 之前发布,防止 qdaemon 的自动重启。 下列命令 : startsrc -s qdaemon 会手动重新启动 qdaemon 进程。 |
-K | 与 -D 标志的操作相同,除了所有当前的作业被杀死之外。它们留在队列中,当设备打开时会重新运行。 |
-L | 指定长状态。该标志可以与 -A 标志或者 -q 标志一起使用。使用 -L 标志来显示要在一个打印作业中的多个文件。 |
-U | 提出与队列相关的设备。qdaemon 进程重新向它发送作业,输入 enq -q 命令会显示它的状态是 READY。 |
注意:如果有多于一个设备同队列相关的话,当您使用 -D 标志, -K 标志和 -U 标志时您必须指定设备和队列。例如,只有当该队列中没有其他设备时输入 -P lp:lpd 才会指定相同的设备。
-X | 取消打印您的作业。如果您有 root 用户权限的话,则在该指定队列中的所有的作业都会被删除。该标志只有在本地打印作业中才有效。 |
-x Number | 取消指定作业 Number 的打印 |
-P Printer | 指定 Printer,这里或者所有的作业或者选定的作业编号要被取消。 |
注意:如果您拥有 root 用户权限并且没有指定队列的话,则在所有的队列中的所有的作业都会被删除。
-# JobNumber | 指定要保持或释放的打印作业的编号。 |
-h | 保持指定的打印作业 |
-H | 对用 File 参数表示的文件进行排队和保持。 |
-p | 释放指定的打印作业。 |
-P Queue | 指定要被保持或释放的打印队列。 |
-u User | 指定打印作业要被保持或释放的用户。 |
-# JobNumber | 指定要被移动的打印作业的编号 |
-P Queue | 指定要被移动的打印队列。Queue 变量值可以是一个队列名或者有队列:设备名的形式。 |
-Q NewQueue | 指定打印作业要移动到的目标队列。NewQueue 变量值可以是队列名的形式或者是队列:设备名的形式。 |
-u User | 指定打印作业要被移动的用户。 |
审计的事件:
事件 | 信息 |
---|---|
ENQUE_admin | 队列名,设备名,作业名,用户名 |
enq memo
pr prog.c | enq
pr 命令在每页的顶部放置一个标题,该标题包含了文件最后修改日期、文件名和页码。enq 命令然后会打印该文件。
enq 命令用四个文件创建了一个作业,并将其提交给名为 bill 的队列。它将打印 fn1 文件两次。然后它会打印,无论 pr 命令的输出是什么。最后它会打印 fn3 文件。那四个文件被当作用于分段页面的一个作业。当该作业完成时,会发送通知(-n 标志)。由于 -r 标志被指定,fn1 和 fn3 文件在作业完成时被除去。由短划线(-)文件创建的临时文件总要删除。
pr 命令在每页的顶部放置一个标题,该标题包含了文件最后修改日期,文件名和页码。enq 命令然后会打印该文件。
enq -P fred report
enq -P fred sam*
所有以 sam 前缀开头的文件都包含在一个打印作业中。通常状态命令只显示打印作业的标题,这种情况下就是队列中的第一个文件名除非 -T 标志指定了不同的值。要想列出打印作业中所有文件的名称,请使用长状态命令 enq -A -L.
没有您的请求--或许它已经完成了?
注意:为一个给定队列服务的打印机是按照设备节名命名的,出现在 /etc/qconfig[.bin] 文件中。
qname: device = fred fred: file = /tmp/hello backend = /usr/bin/sh /usr/bin/diff
并提供了下列命令:
qdaemon进程用两个变量执行 /usr/bin/diff 程序,一个是临时文件名,另一个是 /etc/hosts 文件。两个文件之间唯一的区别就是其中一个是在 pr 命令中运行的。/tmp/hello 文件将包含两个文件之间的差异。qdaemon 进程不会创建 /tmp/hello 文件,如果它不存在的话。
/usr/sbin/qdaemon | 对守护进程排队 |
/etc/qconfig | 对配置文件排队. |
/var/spool/lpd/qdir/* | 对请求排队. |
/var/spool/lpd/stat/* | 设备状态的信息. |
/var/spool/qdaemon/* | 队列中文件的临时拷贝. |
/etc/qconfig.bin | /etc/qconfig 文件的摘要的二进制版本 |
chquedev命令、lsque命令、mkque命令和 rmque命令。
qconfig文件。
AIX 5L Version 5.2 Guide to Printers and Printing 中的 Changing / Showing Queue Characteristics。
AIX 5L Version 5.2 Guide to Printers and Printing 中的 Printer Overview for System Management。
AIX 5L Version 5.2 Guide to Printers and Printing 中的 Printer-Specific Information。
AIX 5L Version 5.2 Guide to Printers and Printing 中的 Printer Support。
AIX 5L Version 5.2 Guide to Printers and Printing 中的 Spooler Overview for System Management。
AIX 5L Version 5.2 Guide to Printers and Printing 中的 Virtual Printer Definitions and Attribute。
AIX 5L Version 5.2 Guide to Printers and Printing 中的 Printer Colon File Conventions。