为什么在运行SOME sendmail命令之后,将“sendmail:queue runner”看作是一个进程,而不是其他的?

我正在尝试解决SendMail中的一些队列处理问题,并且困惑于为什么我在ps输出中看到了一些sendmail命令中的引用,而不是其他的。

我有一个8.14.x的sendmail服务器,目前我正在进行一些操作:

 /usr/sbin/sendmail -L Foo_Instance -Ac -q 5m -C /etc/foo/mail/Foo_Instance/submit.cf 

当我启动这个,然后检查正在运行的进程时,我看到:

 root 7642 0.0 0.0 9400 1736 ? Ss 18:20 0:00 sendmail: accepting connections smmsp 7650 0.0 0.0 8348 1528 ? Ss 18:20 0:00 sendmail: Queue runner@00:05:00 for /var/spool/clientmqueue 101 7668 0.0 0.0 8348 1536 ? Ss 18:20 0:00 sendmail: Queue runner@00:05:00 for /var/spool/mqueue-foo/Foo_Instance/msp root 7671 0.0 0.0 4028 668 pts/0 R+ 18:20 0:00 grep sendmail 

我想这很好,但如果我停下来,我就跑:

 /usr/sbin/sendmail -bd -q5m -L Foo_Instance -C /etc/foo/mail/Foo_Instance/sendmail.cf 

…然后检查正在运行的进程,我看到:

 root 7823 0.0 0.0 9404 1740 ? Ss 18:24 0:00 sendmail: accepting connections root 7830 0.0 0.0 4028 688 pts/0 R+ 18:25 0:00 grep sendmail 

这里的主要区别是我没有看到ps输出中的“Queue runner”。 为什么我没有看到两个单独的进程? 或者既不是时间?

即使我看不到队列运行程序进程,我也会在日志中看到队列正在重试的指示。

起初,我认为这可能是因为在-q后有一个错误的空间。 但即使我跑步,这种行为仍然会发生

 /usr/sbin/sendmail -L Foo_Instance -Ac -q5m -C /etc/foo/mail/Foo_Instance/submit.cf 

我认为也许“队列runner @ xx:xx:xx”可能表示队列跑步者是一个持久队列跑步者,但是batbook表明一个持久的跑步者过程将有它运行的词:

 root 22947 512 ? S 08:32 0:00 sendmail: running queue: /var/spool/mqueues/ q.1/df 

  1. sendmail -bd -q5m启动主守护进程( sendmail: accepting connections )。 守护进程会在需要的时候产生一个队列运行的进程。

  2. 您需要单独的命令启动客户端队列运行程序进程( sendmail: Queue runner@00:05:00 for /var/spool/clientmqueue )。 客户端队列运行程序的行为由submit.cf而不是由sendmail.cf
    [有些设置使用定期的“单次运行”cron作业来处理客户端队列,而不是永久队列运行程序]