4.1.1 master.c:master模块主程序--master.cf配置文件
来源:互联网 发布:ubuntu 16.04安装 分区 编辑:程序博客网 时间:2024/04/30 01:15
postfix使用master.cf文件配置模块信息。下面是一个典型的master.cf文件:
#==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
#==========================================================================
smtp inet n - n - - smtpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
smtp unix - - n - - smtp
rewrite unix - - n - - trivial-rewrite
local unix - n n - - local
anvil unix - - n - 1 anvil
error unix - - n - - error
retry unix - - n - - error
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
该文件每一行代表一个模块的配置。“-”符号表示使用默认配置,各列含义如下:
service:服务名称。
type:监听类型:有inet(即socket)、fifo、unix(unix域协议)三种。对于需要进行网络服务的模块,比如用作smtp协议解析的smtpd模块,使用inet协议。不需要提供网络解析的,使用fifo进程间通信或Unix域协议。postfix在父子进程内部通信中使用管道。对于pickup和qmgr这两种使用trigger_server.c做执行模板的模块,通信方式为fifo,其他均为unix。在我们讨论到的模块中,会使用所有这三种通信方式。
private:模块是否允许外界访问。
unpriv:是否使用非特权账户。
chroot:是否改变组件根目录。
wakeup:唤醒间隔。以上服务中只有pickup和qmgr模块需要定时唤醒。
maxproc:进程数上限。默认为100,0代表无限制。在上面的配置中,smtpd模块(即smtp服务器)和smtp模块(smtp MDA)的默认进程上限都是100。pickup和qmgr都只会有1个进程在运行。
command + args:运行服务的命令。这里我们可以将参数传递给各个模块。因为postfix的内部模块用户一般是不直接启动的。比如用户会运行service postfix start或postfix start,但不会直接运行./master。这里便可以设置启动参数。
关于该文件要说明以下3点:
1 模块定义的顺序就是其挂载服务回调函数的顺序。因为文件中默认的模块定义顺序是smtpd->pickup->cleanup->qmgr,所以模块挂载服务回调函数的顺序也是这个。详情见4.1.3.1节
2 程序中一个模块的名称是由模块名和服务类型共同确定的。比如上面例子中,有两个名为smtp的模块,inet类型的是smtpd模块,unix类型的是smtp模块。
3 master.cf中服务名称的方式:
(1)直接指定名称
如smtpd模块的名称smtp。
(2)ip地址:端口号方式,如:
xxx.xxx.xxx.xxx:3000
表示在本地ip地址为xxx.xxx.xxx.xxx的网卡的3000端口上提供服务。
1.9中为postfix配置ClamAV杀毒程序时就采用了这样的配置:
127.0.0.1:10026 inet n - n - 16 smtpd
(3)直接给出端口号,表示本机所有接口(各个网卡上配置的所有ip地址)的该端口的服务组件。如直接将服务名写为3000。
- 4.1.1 master.c:master模块主程序--master.cf配置文件
- Master-Master Master-slave 区别
- Problem C. Minesweeper Master
- Dungeon Master(POJ2251)(C)
- master to master replication
- MongoDB Master+Master同步
- Master-Master架构
- mfs master模块的介绍
- 第四章 master模块解析
- Master(1)
- 源码-spark Master(1)
- 最新postfix 的master.cf配置参考
- Dual Master 复制架构(Master-Master)
- Dual Master 复制架构(Master-Master)
- ubifs master.c代码分析
- RabbitMQ--rabbitmq-c-master学习心得
- Master Data
- Master page_enableeventvalidation
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- “上帝的算法”在高斯混合分布中的应用
- java修炼之道
- Using Wireshark with Contiki and Cooja
- Could not find developer disk image-解决方案
- 4.1.1 master.c:master模块主程序--master.cf配置文件
- Shiro学习(7)与Web整合
- atl里的T2W宏 的一点小细节
- C与C++中的常用提高程序效率的方法
- MyBatis 配置sql语句输出
- TOTOLINK N500UA无线网卡同时开启AP和Mesh point模式
- 在BackGroundWorker中使用ArcGIS组件
- 第十七章 摊还分析
- 4.1.2 MASTER_SERV和MASTER_PROC结构体:描述模块和其子进程结构