I'm in the process of trying to troubleshoot some queue processing issues in SendMail and am confused on why I'm seeing references in ps
output following SOME sendmail commands but not others.
I have a 8.14.x sendmail server and I presently have a couple operations going on:
/usr/sbin/sendmail -L Foo_Instance -Ac -q 5m -C /etc/foo/mail/Foo_Instance/submit.cf
When I launch this, and then check running processes, I see:
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
That's all fine I suppose, but if I stop everything and I run:
/usr/sbin/sendmail -bd -q5m -L Foo_Instance -C /etc/foo/mail/Foo_Instance/sendmail.cf
…and then check running processes, I see:
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
The key difference here being that I don't see "Queue runner" in the ps output. Why don't I see separate processes both time? Or neither time?
Even if I don't see the queue runner process, I see indications in the logs that the queues are being retried.
At first, I thought it might be happening because have an erroneous space after -q
. But the behavior still happens even if I run
/usr/sbin/sendmail -L Foo_Instance -Ac -q5m -C /etc/foo/mail/Foo_Instance/submit.cf
I thought that perhaps "Queue runner@xx:xx:xx" could be an indication that the queue runner is a persistent queue runner but the batbook indicates that a persistent runner process would have the word "running" in it:
root 22947 512 ? S 08:32 0:00 sendmail: running queue: /var/spool/mqueues/
q.1/df
Best Answer
sendmail -bd -q5m
starts main daemon process (sendmail: accepting connections
). The daemon process will spawn queue runner process for one time queue run when needed.You need separate command to start client-queue runner process (
sendmail: Queue runner@00:05:00 for /var/spool/clientmqueue
). The client-queue runner behavior is controlled bysubmit.cf
not bysendmail.cf
.[Some setups use periodic "single run" cron jobs to process client-queue instead of permanent queue runners]