MASTER(8)                                                            MASTER(8)

名称
       master - Postfix 主控进程

概述
       master [-Dditvw] [-c config_dir] [-e exit_time]

描述
       master(8) 守护进程是 Postfix 系统的核心进程,负责按需启动其他服务进程:
       • 网络邮件收发进程
       • 本地邮件投递进程
       这些子进程会根据服务需求动态创建,每个服务类型都有可配置的最大进程数限制。

       Postfix 子进程会在以下情况自动终止:
       1. 空闲时间超过配置阈值
       2. 完成指定数量的服务请求
       例外情况:
       • 常驻队列管理器
       • 地址验证服务器  
       • TLS 会话缓存服务
       • 伪随机数生成服务

       master(8) 的行为由 master.cf 配置文件控制,具体配置语法详见 master(5)。

       命令行选项:

       -c config_dir
              指定配置文件目录,替代默认配置目录。该设置会同时影响:
              • main.cfmaster.cf
              以及其他 Postfix 守护进程的配置文件

       -D    初始化后启动调试器。调试命令由 main.cf 中的
              debugger_command 参数定义

       -d    调试模式:
              • 保持标准输入/输出/错误流
              • 保留控制终端
              注意:仅限调试使用

       -e exit_time
              设置主进程生存时间(秒)。子进程会在完成当前任务后自动退出。

       -i    init 模式:
              • 不作为会话或进程组领导
              • 类似 -s 选项,保留标准输出
              使 "maillog_file = /dev/stdout" 配置生效
              注意:仅当进程 ID = 1 时可用

              (Postfix 3.3+ 版本功能)

       -s    保留标准输出,使 "maillog_file = /dev/stdout" 配置生效

              (Postfix 3.4+ 版本功能)

       -t    测试模式:
              通过检查 master.pid 锁文件状态返回退出码:
              • 0 - 主进程未运行
              • 非0 - 主进程正在运行

       -v    启用详细日志(调试用途)。可通过重复使用增加日志详细程度:
              • -v  基本调试信息
              • -vv 详细调试信息  
              • -vvv 最详细调试信息

       -w    前台等待模式:
              • 后台初始化主进程
              • 前台虚拟进程监控初始化状态
              返回码说明:
              • 0 - 初始化成功
              • 非0 - 初始化失败或超时

              (Postfix 2.10+ 版本功能)

       信号处理:

       SIGHUP 重载配置(如执行 "postfix reload" 命令时):
              1. 重新读取配置文件
              2. 对服务变更的处理:
                 • 已移除服务 - 立即终止相关进程
                 • 现有服务 - 优雅终止(完成当前任务后退出)
              注意:配置变更仅影响新请求

       SIGTERM 终止信号(如执行 "postfix abort" 命令时):
              1. 向所有子进程转发终止信号
              2. 主进程立即退出
              注意:正常关闭应使用 "postfix stop" 命令

诊断
       • 日志输出:syslogd(8) 或 postlogd(8)
       • 退出状态:
         - 0 成功
         - 非0 失败(包括后台初始化失败)

环境变量
       MAIL_DEBUG
              初始化后启动调试器,调试命令由
              main.cf 中的 debugger_command 参数定义

       MAIL_CONFIG
              Postfix 配置文件目录
配置参数
       注意:与其他 Postfix 守护进程不同,master(8) 服务:
       1. 不会自动重载 main.cf 配置变更
       2. 从不自动重载 master.cf 配置变更
       配置更新后必须执行 "postfix reload" 命令

资源与速率控制
       default_process_limit (默认值:100)
              单服务的最大并发子进程数:
              • 适用于所有未单独配置的服务
              • 实际限制取决于服务类型

       max_idle (默认值:100秒)
              子进程空闲超时设置:
              • 超过设定时间无新请求则自动终止
              • 常驻服务不受此限制

       max_use (默认值:100)
              子进程生命周期控制:
              • 处理指定数量请求后自动重启
              • 防止内存泄漏等问题

       service_throttle_time (默认值:60秒)
              故障服务保护机制:
              • 异常服务重启间隔
              • 避免故障服务频繁重启

       (Postfix 2.6+ 版本新增参数)

       master_service_disable (默认值:空)
              服务禁用功能:
              • 按服务类型禁用(如:smtp)
              • 按"服务名+类型"组合禁用(如:smtp/inet)
              示例:
              smtp/inet     # 禁用SMTP网络服务
              pickup/fifo   # 禁用本地pickup服务

其他控制参数
       config_directory (查看 'postconf -d' 输出)
              配置文件默认存储路径:
              • main.cfmaster.cf

       daemon_directory (查看 'postconf -d' 输出)
              可执行文件目录:
              • 包含所有 Postfix 守护程序
              • 存放支持工具

       debugger_command (默认值:空)
              调试器启动命令:
              • 配合 -D 参数使用
              • 示例:gdb -batch -x debug.cmd $daemon_directory/$process_name $process_id

       inet_interfaces (默认值:all)
              网络监听接口:
              • all - 监听所有接口
              • loopback-only - 仅本地回环
              • 可指定具体IP地址

       inet_protocols (查看 'postconf -d' 输出)
              网络协议支持:
              • ipv4 - 仅IPv4
              • ipv6 - 仅IPv6  
              • all - 双栈支持

       import_environment (查看 'postconf -d' 输出)
              环境变量继承规则:
              1. 从父进程继承的变量白名单
              2. 格式:VARNAME 或 VARNAME=value

       mail_owner (默认值:postfix)
              运行身份:
              • 邮件队列所有者
              • 大多数守护进程的运行账户

       process_id (只读)
              进程标识:
              • 获取当前 Postfix 进程的PID
              • 常用于调试脚本

       process_name (只读)
              进程名称:
              • 显示当前执行的程序名
              • 如:qmgr、smtpd等

       queue_directory (查看 'postconf -d' 输出)
              邮件队列存储路径:
              • 默认:/var/spool/postfix
              • 包含各种队列子目录

       syslog_facility (默认值:mail)
              日志分类:
              • 指定syslog设施
              • 常用值:mail, local0等

       syslog_name (查看 'postconf -d' 输出)
              日志前缀:
              • 修改进程名在日志中的显示
              • 示例:postfix/smtpd

       (Postfix 3.3+ 版本新增参数)

       service_name (只读)
              服务标识:
              • 显示master.cf中定义的服务名
              • 格式:transport/type(如:smtp/inet)

       (Postfix 3.6+ 版本新增参数)

       known_tcp_ports (默认值:lmtp=24, smtp=25, smtps=submissions=465, submission=587)
              端口映射:
              • 避免查询/etc/services
              • 格式:service=port
              • 支持别名(如:smtps=submissions)
文件
       重要文件路径(可通过 "postconf" 命令查询实际值):

       $config_directory/main.cf
              • 主配置文件
              • 包含全局参数设置

       $config_directory/master.cf
              • 服务配置文件
              • 定义所有守护进程的运行参数

       $queue_directory/pid/master.pid
              • 主进程锁文件
              • 存储主进程PID

       $data_directory/master.lock
              • 备用锁文件
              • 确保单实例运行

参见
       qmgr(8)
              • 核心队列管理器
              • 负责邮件投递调度

       verify(8)
              • 地址验证服务
              • 校验收件人有效性

       master(5)
              • master.cf 配置文件语法详解
              • 服务定义规范

       postconf(5)
              • main.cf 配置参考手册
              • 所有参数说明

       postlogd(8)
              • Postfix 日志服务
              • 替代传统syslog的方案

       syslogd(8)
              • 系统日志服务
              • 传统日志记录方式

许可证
       • 必须随软件分发 Secure Mailer 许可证
       • 完整的许可条款包含在Postfix发行包中

作者
       Wietse Venema
       • 初始版本开发者
       • IBM T.J. Watson 研究中心
         通讯地址:
         P.O. Box 704
         Yorktown Heights, NY 10598, USA

       • 当前维护者
       • Google, Inc.
         办公地址:
         111 8th Avenue
         New York, NY 10011, USA

                                                                      MASTER(8)