/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_name。 device 参数的值是队列节到设备节的链接;该参数没有其他功能。 在最初设置队列时,操作系统会经常使用打印机的名称(比如 lp1)作为 device 参数的值。 然而,实际上也可能设置队列使用 lp1,将 lp1 用作 device 参数的值只意味着设备节将被命名为 lp1。 这与存在一个操作系统已知的名为 lp1 的真实打印机无关。
在制表符缩进行之后,qdaemon 必须找到后面带个冒号的单词,它是 device 参数的值;此行表示设备节的开始。 这个单词通常不需要用户知道,它是一个设备名,相应的队列节提供对它的串行访问。 此行之后,必须跟有缩进了若干制表符的一行或者多行。 其中一行必须是 backend
= full_path_name_to_backend。 在本地假脱机环境中,此节有两个至关重要的参数。
file 参数指定实设备,这是队列提供对它的串行访问的设备。 提交给假脱机系统的作业将在此设备上排队,注意到这点是很重要的。 如果将队列设置为使用操作系统已知的名为 lp1 的打印机,那么 file 参数的值将是 /dev/lp1。 缺省情况下,创建队列的操作系统例程将实设备的名称用作设备节的名称,而这就是为什么 device 参数的含义存在混淆的原因。
backend 参数指定在 qdaemon 确定要处理的作业轮次已到达之后,将处理提交到假脱机系统的作业的程序的完整路径。