18.10. 运行 sendmail

sendmail 守护进程可以通过两种方式运行。一种方式是从 inetd 守护进程运行;另一种更常用的方法是将 sendmail 作为独立守护进程运行。邮件程序通常也会调用 sendmail 作为用户命令,以接受本地生成的邮件进行传递。

当以独立模式运行 sendmail 时,将命令放在一个rc文件中,以便它在启动时启动。常用的语法是
/usr/sbin/sendmail -bd -q10m
The-bd参数告诉 sendmail 作为守护进程运行。它将 fork 并在后台运行。The-q10m参数告诉 sendmail 每十分钟检查一次队列。您可以选择使用不同的队列检查时间。

要从 inetd 网络守护进程运行 sendmail,您可以使用如下条目
smtp  stream  tcp nowait  nobody  /usr/sbin/sendmail -bs
The-bs此处的参数告诉 sendmail 在 stdin/stdout 上使用 SMTP 协议,这对于与 inetd 一起使用是必需的。

runq 命令通常是 sendmail 二进制文件的符号链接,并且是更方便的形式
# sendmail -q

当以这种方式调用 sendmail 时,它会处理队列中等待传输的任何邮件。当从 inetd 运行 sendmail 时,您还必须创建一个 cron 作业,定期运行 runq 命令,以确保定期维护邮件假脱机。

一个合适的 cron 表条目将类似于
# Run the mail spool every fifteen minutes
0,15,30,45     *     *     *     *     /usr/bin/runq

在大多数安装中,sendmail 每 15 分钟处理一次队列,如我们的crontab示例中所示,尝试传输其中的任何消息。