SPAWN(8) SPAWN(8)
名称
spawn - Postfix 外部命令生成器
概要
spawn [通用 Postfix 守护进程选项] 命令属性...
描述
spawn(8) 守护进程用于监控 TCP 或 UNIX 域流套接字,这些套接字在
master.cf 中配置为 inet 或 unix 服务类型。
当建立连接时,该守护进程会启动外部命令,并将标准输入、输出和错误文件描述符
连接到远程客户端。
命令进程的执行时间受 transport_time_limit 参数限制(默认值:
command_time_limit),其中 transport 对应 master.cf 中的服务名称字段。
超过时限的进程将收到 SIGKILL 信号终止。
spawn(8) 守护进程通常在 master.cf 服务定义中设置进程数限制 >1,
以便根据需求动态扩展进程数量。
命令属性语法
外部命令属性在 master.cf 文件的服务定义末尾指定,语法如下:
user=username(必需)
user=username:groupname
以指定用户的权限执行外部命令。系统会拒绝使用 root 权限
或邮件系统所有者权限执行的命令。若指定 groupname,
则使用对应的组 ID 而非用户默认组 ID。
argv=command...(必需)
要执行的命令(必须作为最后一个属性)。命令直接执行,
不经过 shell 解释器处理元字符。
若参数包含空格或以"{"开头,需用"{"和"}"包裹。
这种格式会忽略外层大括号外的空格。例如:
argv=/bin/sh -c { shell 语法示例 }
诊断
spawn(8) 守护进程会记录异常退出的子进程。问题将记录至
syslogd(8) 或 postlogd(8)。
安全性
spawn(8) 需要 root 权限来以指定用户身份执行命令,
因此属于敏感组件。
但由于该守护进程不处理客户端或外部命令的数据,
故不易受到数据驱动型攻击。
配置参数
修改 main.cf 会自动生效,因为 spawn(8) 进程
存活时间有限。使用"postfix reload"命令可加速变更。
下文为参数摘要,详见 postconf(5) 获取完整说明(含示例)。
其中 transport 指 master.cf 中的服务名称字段。
资源与速率控制
transport_time_limit ($command_time_limit)
覆盖特定传输服务的 command_time_limit 参数值
其他
config_directory (见'postconf -d'输出)
Postfix 主配置文件 main.cf 和 master.cf 的默认位置
daemon_timeout (18000秒)
守护进程处理请求的最长时限(超时会被监控进程终止)
export_environment (见'postconf -d'输出)
Postfix 进程向非 Postfix 进程导出的环境变量列表
ipc_timeout (3600秒)
内部通信通道的超时时限
mail_owner (postfix)
拥有 Postfix 队列和多数守护进程的系统账户
max_idle (100秒)
空闲守护进程自动终止前的最大等待时间
max_use (100)
守护进程自动终止前处理的最大连接数
process_id (只读)
进程 ID
process_name (只读)
进程名称
queue_directory (见'postconf -d'输出)
队列目录位置
syslog_facility (mail)
日志设施
syslog_name (见'postconf -d'输出)
syslog 记录中进程名前缀(如"prefix/smtpd")
Postfix 3.3 及以上版本:
service_name (只读)
守护进程在 master.cf 中的服务名称
参见
postconf(5),配置参数
master(8),进程管理器
postlogd(8),Postfix 日志
syslogd(8),系统日志
许可
本软件需随附 Secure Mailer 许可证。
作者
Wietse Venema
IBM T.J. Watson 研究院
美国纽约州约克镇高地 704 号信箱,邮编 10598
Wietse Venema
Google 公司
美国纽约州纽约市第八大道 111 号,邮编 10011
SPAWN(8)