qconfig 文件

用途

配置在系统中排队的打印机。

描述

/etc/qconfig文件描述了可供 "enq命令和 "qdaemon命令使用的队列和设备。 enq命令将请求放入队列,"qdaemon命令从队列中移除请求并进行处理。 qconfig文件是一个属性文件。

此文件中的某些节描述队列,而其他节描述设备。 文件中的每个队列节后必须紧跟一个或多个设备节。 第一个队列节描述缺省队列。 除非设置了LPDESTPRINTER环境变量,否则 "enq命令在没有收到队列参数时将使用该队列。 如果 LPDEST 包含一个值,那么该值将优先于 打印机 环境变量。 目标命令行选项始终覆盖两个变量。

队列字段的名称长度必须在 1 到 20 个字符之间。 以下字段是 "qconfig文件队列部分的字段:

表 1. qconfig文件队列节中的字段
字段 定义
acctfile 标识用于保存 "print命令会计信息的文件。 默认值为FALSE,表示抑制记账。 如果命名的文件不存在,则不进行核算。
device 标识有关设备节的符号名称。
discipline 定义为算法提供服务的队列。 默认值为fcfs,表示先到先得。 sjn表示下一个最短工作。
up 定义队列的状态。 默认值TRUE表示队列正在运行。 值FALSE表示不运行。
recovery_type 允许用户在打印队列出现故障时指定恢复选项。 默认情况下,队列处于停机状态,需要用户干预。
其他选项可以通过使用以下值来指定:
runscript <PathName>
当队列关闭时,将运行用户定义的脚本。 脚本所采取的操作由系统管理员自行决定。
retry -T <delay> -R <retries>
队列会在延迟(以分钟为单位)中指定的时间内停止运行。 指定时间结束后,队列将被收回,作业将再次运行。 此过程重复进行,直至重试次数变量中指定的重试次数。 如果工作失败是由于临时情况造成的,而临时情况可能会在一定时间内得到解决,那么这项功能就非常有用。 例如,缺纸情况或临时网络故障或网络速度变慢。
sendmail <username>
当队列宕机时,指定用户会收到邮件,通知用户特定打印机已宕机。
注意:队列名称 "lp是伯克利软件发行版(BSD)标准保留队列名称,不得用作 "qconfig文件中的队列名称。

下面列出了远程队列 "qconfig文件中出现的一些字段及其可能的值:

表 2. qconfig文件中的字段
描述
host 指示在其中找到远程队列的远程主机。
s_statfilter 指定用于翻译远程队列状态格式的简短版本过滤器。 以下是可能的值:
/usr/lib/lpd/bsdshort
伯克利软件发行版(BSD)远程系统
/usr/lib/lpd/aixv2short
资源 远程系统
/usr/lib/lpd/attshort
美国电话电报公司(AT&T)远程系统
l_statfilter 指定用于转换远程队列状态格式的长版本过滤器。 以下是可能的值:
/usr/lib/lpd/bsdlong
BSD 远程系统
/usr/lib/lpd/aixv2long
资源 远程系统
/usr/lib/lpd/attlong
AT&T 远程系统
rq 指定远程队列名称。 在远程打印环境中,客户端配置必须指定远程队列名称或服务器。 使用默认远程队列名称可能会导致无法预测的结果。

如果省略某个字段,那么将采用其缺省值。 下屏显示队列协议的默认值:

discipline   = fcfs
up           = TRUE
acctfile     = FALSE
recovery_type = queuedown 

不能省略该设备字段。

设备分节的名称是任意的,长度必须在 1 到 20 个字符之间。 以下字段是 "qconfig文件设备字段中的字段:

表 3. 设备字段中的字段
字段 定义
access 指定后端对文件字段中指定文件的访问类型。 如果后端对文件具有写访问权,那么访问权值为 write; 如果后端同时具有读访问权和写访问权,那么访问权值为 both。 如果文件字段的值为 FALSE ,那么将忽略此字段。
align 指定如果打印机空闲,那么在启动作业前后端是否发送换页控制。 缺省值为 true。
backend 指定后端的完整路径名,然后是要传递给它的标志和参数(如有)。 最常用的路径名是本地打印的 "/usr/lib/lpd/piobe和远程打印的 "/usr/lib/lpd/rembak
feed 指定设备闲置时要打印的分隔页数。 默认值为 "从不",表示后台不打印分隔页。
file 标识后端输出重定向的特殊文件。 默认值FALSE表示不重定向,文件名为 "/dev/null。 这种情况下,后端打开输出文件。
header 指定在每个作业或一组作业前是否打印头页面。 header字段可以有以下值:
  • never:表示在每个任务或每组任务之前不打印页眉。 该选项为默认值。
  • 总是:表示在每次作业前打印页眉。
  • :表示在同一用户的每组任务之前打印页眉。
在远程打印环境中,缺省操作是打印标题页,而不打印尾部页。
trailer 指定在每个作业或一组作业后是否打印尾页面。 trailer字段可以有以下值:
  • never(从不):表示在每个任务或每组任务之前不打印引导页。 该选项为默认值。
  • 总是:表示每次作业后都打印预告页。
  • :表示在同一用户的每组打印任务之后打印预告页。
在远程打印环境中,缺省操作是打印标题页,而不打印尾部页。

qdaemon流程会将 "feed、"header、"trailer"和 "align字段中包含的信息放入一个状态文件中,然后发送到后台。 不更新状态文件的后端不会使用其中包含的信息。

如果省略某个字段,那么将采用其缺省值。 后端字段不能被省略。 下屏显示了设备字段的默认值:

file    = FALSE
access  = write
feed    = never
header  = never
trailer = never
align   = TRUE
当二进制版本缺失或比 ASCII 版本旧时, enq 命令会自动将 ASCII qconfig 文件转换为二进制格式。 二进制版本可在 "/etc/qconfig.bin文件中找到。
注意:在任何队列中有活动任务时,都不得编辑 "qconfig文件。 只要更改 "qconfig文件,在更改前提交的任务将在更改后提交的任务之前得到处理。
为提高打印机 AIX 子系统的可扩展性,请执行以下步骤:
  1. 输入以下命令,停止AIX打印机子系统:
    #stopsrc -s qdaemon
  2. 输入以下命令启动AIX打印机子系统:
    #startsrc -s qdaemon -e printer_scalability=ON
  3. 输入以下命令启动 "lpd守护进程:
    #startsrc -s lpd -e printer_scalability=ON
  4. 输入以下命令,将打印机可扩展性环境变量设置为ON
    #export printer_scalability=ON

    打印机可扩展性环境变量仅为当前会话设置。

注意:
  • 要提高AIX打印机子系统的可扩展性,请完成前面介绍的所有步骤。 未完成任何步骤都可能导致打印机子系统出现未定义的行为。
  • 为保持AIX打印机子系统的可扩展性,可创建队列数量的最佳限制为 10,000。

编辑包括手动编辑和使用 "mkque、"rmque、"chque、"mkquedev、"rmquedev或 "chquedev命令。 建议使用这些命令对 "qconfig文件进行所有修改。 不过,如果要手动编辑,首先要发出 "enq -G命令使队列系统停止运行,并在所有任务处理完毕后发出 "qdaemon命令停止运行。 然后编辑 "qconfig文件,并使用新配置重新启动 "qdaemon命令。

示例

  1. 系统随附的批队列可能包含以下段落:
    bsh:
      discipline = fcfs
      device = bshdev
    bshdev:
      backend = /usr/bin/ksh
     
    要使用批处理队列运行名为 "myproc的 shell 程序,请输入以下命令:
    qprt -Pbsh myproc
    队列系统按照提交的顺序一次运行一个文件。 qdaemon进程将标准输入、标准输出和标准错误重定向到 "/dev/null文件。
  2. 要允许两个批处理任务同时运行,请输入以下命令:
    bsh:
      discipline = fcfs
      device = bsh1,bsh2
    bsh1:
      backend = /usr/bin/ksh
    bsh2:
      backend = /usr/bin/ksh
  3. 要设置远程队列 "bsh,请输入以下命令:
    remh:
      device = rd0
      host = pluto
      rq = bsh
    rd0:
      backend = /usr/lib/lpd/rembak
      
  4. 要设置本地队列,以便在user1@xyz.com出现故障时发送电子邮件,请输入以下命令:
    ps:
           recovery_type = sendmail user1@xyz.com
            device = lp0
    lp0:
            file = /dev/lp0
            header = never
            trailer = never
            access = both
            backend = /usr/lib/lpd/piobe
    

文件

表 4. 文件
描述
/etc/qconfig 包含配置文件。
/etc/qconfig.bin 包含 "digest命令创建的 "/etc/qconfig文件的二进制版本。
/dev/null 提供对空设备的访问权。
/usr/lib/lpd/piobe 指定当地打印机后端的路径。
/usr/lib/lpd/rembak 指定该远程打印机后端的路径。
/usr/lib/lpd/digest 包含将 "/etc/qconfig文件转换为二进制格式的程序。