天天看点

Linux打印系统CUPS原理分析

2.6.1CUPS后台服务程序-cupsd分析

(1) 检查命令行参数

(2) 设置相应的参数:时域、文件最大数目

(3) 读取配置文件

(4) 初始化认证

(5) 加载所有的打印任务:初始化打印作业队列,启动打印任务

(6) 进入永久循环状态

◆检查是否需要重新加载“服务器”的配置文件,如果需要,则进行以下操作:

◆如果当前“客户端”大于0则依次设置“客户端”链接状态,否则重新读取配置文件;

◆通过seclect()监听多个“客户端”链接;

◆循环处理监听信息并决定是否接收来自“客户端”的请求;

◆循环处理被接收的“客户端”请求,读“客户端”信息,然后往“客户端”写信息,最后检查活动的以及老的“客户端”请求;

◆循环检测来自作业过滤器返回的状态,读取状态信息;

◆根据需要更新浏览列表;

◆更新未决的打印文档;

◆每5分钟更新一次root用户授权;

(7)出现异常情况下退出了(6)的循环过程,则删除授权信息,关闭所有的“客户端”链接,关闭监听端口