Postfix master.cf文件包含唤醒qmgr服务的定义:
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
...
qmgr unix n - n 300 1 qmgr
...
来自 qmgr手册页,“等待收到的邮件并通过 Postfix 传递流程安排其传递。”没错,我看到邮件到达后是如何沿着收到的邮件队列和活动队列移动的。
但是为什么需要唤醒时间呢?qmgr 进程始终处于运行状态,执行其工作。根据唤醒计划,我预计只有在调用后才会看到工作,每 300 秒一次,但这没有太大意义,因为在这种情况下,每次只有邮件被移动。
答案1
启用详细的“qmgr -v”日志打印更多见解后,该过程似乎在master.cf 上定义的计划时间被唤醒:
2024-01-22T11:53:09.068813+01:00 mx postfix/qmgr[3633521]: trigger_server_accept_local: trigger arrived
2024-01-22T11:53:09.068835+01:00 mx postfix/qmgr[3633521]: master_notify: status 0
2024-01-22T11:53:09.068841+01:00 mx postfix/qmgr[3633521]: request: 87 (W)
2024-01-22T11:53:09.068848+01:00 mx postfix/qmgr[3633521]: request: 0 (?)
2024-01-22T11:53:09.068854+01:00 mx postfix/qmgr[3633521]: request ignored
2024-01-22T11:53:09.068861+01:00 mx postfix/qmgr[3633521]: qmgr_scan_start: start incoming queue scan
2024-01-22T11:53:09.068867+01:00 mx postfix/qmgr[3633521]: master_notify: status 1
2024-01-22T11:53:09.068874+01:00 mx postfix/qmgr[3633521]: done incoming queue scan
当有新邮件到达时,qmgr 就会启动并将命名的消息文件插入到活动队列中。
2024-01-22T11:59:44.274607+01:00 mx postfix/qmgr[3633521]: trigger_server_accept_local: trigger arrived
2024-01-22T11:59:44.274630+01:00 mx postfix/qmgr[3633521]: master_notify: status 0
2024-01-22T11:59:44.274640+01:00 mx postfix/qmgr[3633521]: request: 87 (W)
2024-01-22T11:59:44.274649+01:00 mx postfix/qmgr[3633521]: request: 0 (?)
2024-01-22T11:59:44.274658+01:00 mx postfix/qmgr[3633521]: request ignored
2024-01-22T11:59:44.274667+01:00 mx postfix/qmgr[3633521]: qmgr_scan_start: start incoming queue scan
2024-01-22T11:59:44.274676+01:00 mx postfix/qmgr[3633521]: master_notify: status 1
2024-01-22T11:59:44.274685+01:00 mx postfix/qmgr[3633521]: qmgr_active_feed: queue incoming
2024-01-22T11:59:44.274695+01:00 mx postfix/qmgr[3633521]: qmgr_active_feed: incoming/419B440602
2024-01-22T11:59:44.274704+01:00 mx postfix/qmgr[3633521]: qmgr_message_alloc: active 419B440602
所以我可以确认Postfix 邮件列表
我不相信 qmgr 会运行,除非在端口 25 上有连接。我没有看过 postfix 源代码,但似乎 postfix 足够聪明,可以在有连接时检查 qmgr,发现它没有运行,然后生成它。同样,每 5 分钟它就会尝试唤醒 qmgr,发现它没有运行,然后生成它。
qmgr 不需要等到唤醒时间,当有新邮件到达时,清理服务会调用它,并且主进程也已配置好。