/etc/qconfig 文件结构

/etc/qconfig 文件是假脱机程序域中最重要的文件。

  • /etc/qconfig 文件包含假脱机程序已知的每个队列的定义。
  • 系统管理员可以阅读 /etc/qconfig 文件,并辨别每个队列的功能。
  • 虽然不建议这样做,但可以编辑 /etc/qconfig 文件 (请参阅 /etc/qconfig File) 以修改假脱机程序队列而不停止假脱机程序。

qdaemon 将读取 /etc/qconfig 的 ASCII 版本,并创建一个二进制版本 /etc/qconfig.bin/etc/qconfig 必须遵守特定结构的格式,以便 qdaemon 能够对它进行语法分析。 此格式在以下的 /etc/qconfig 文件结构示例中进行了详细描述。

                Local Queue
queue_name:
        device = device_name
        up = TRUE or FALSE
        discipline = fcfs or sjn
device_name:
        file = physical_device_name or FALSE
        header = always or group or never
        trailer = always or group or never
        access = both or write
        backend = full_path_name_to_backend_program 
  
                Remote Queue
queue_name:
        device = device_name
        up = TRUE or FALSE
        host = remote_hostname
        s_statfilter = full_path_to_short_filter
        l_statfilter = full_path_to_long_filter
        rq = remote_queue_name
device_name:
        backend = full_path_name_to_backend_program

/etc/qconfig 由称为节的文本块组成。 每个队列由一对节表示。 对中的第一节称为队列节;对中的第二节称为设备节。 节由描述队列属性和功能的参数和参数值组成。

qdaemon/etc/qconfig 的 ASCII 版本进行语法分析时,它所标识的第一个非注释行必须是一个单词后跟一个冒号;此行表示队列节的开始。 此单词是用户可以对它提交作业的队列名称。 此行之后,必须跟有缩进了若干制表符的一行或者多行。 其中一行必须是 device = device_namedevice 参数的值是队列节到设备节的链接;该参数没有其他功能。 在最初设置队列时,操作系统会经常使用打印机的名称(比如 lp1)作为 device 参数的值。 然而,实际上也可能设置队列使用 lp1,将 lp1 用作 device 参数的值只意味着设备节将被命名为 lp1。 这与存在一个操作系统已知的名为 lp1 的真实打印机无关。

在制表符缩进行之后,qdaemon 必须找到后面带个冒号的单词,它是 device 参数的值;此行表示设备节的开始。 这个单词通常不需要用户知道,它是一个设备名,相应的队列节提供对它的串行访问。 此行之后,必须跟有缩进了若干制表符的一行或者多行。 其中一行必须是 backend = full_path_name_to_backend。 在本地假脱机环境中,此节有两个至关重要的参数。

file 参数指定实设备,这是队列提供对它的串行访问的设备。 提交给假脱机系统的作业将在此设备上排队,注意到这点是很重要的。 如果将队列设置为使用操作系统已知的名为 lp1 的打印机,那么 file 参数的值将是 /dev/lp1。 缺省情况下,创建队列的操作系统例程将实设备的名称用作设备节的名称,而这就是为什么 device 参数的含义存在混淆的原因。

backend 参数指定在 qdaemon 确定要处理的作业轮次已到达之后,将处理提交到假脱机系统的作业的程序的完整路径。