Estou tentando solucionar alguns problemas de processamento de fila no SendMail e estou confuso sobre por que estou vendo referências na ps
saída seguindo ALGUNS comandos do sendmail, mas não outros.
Eu tenho um servidor sendmail 8.14.x e atualmente tenho algumas operações em andamento:
/usr/sbin/sendmail -L Foo_Instance -Ac -q 5m -C /etc/foo/mail/Foo_Instance/submit.cf
Quando inicio isso e, em seguida, verifico os processos em execução, vejo:
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
Tudo bem, suponho, mas se eu parar tudo e executar:
/usr/sbin/sendmail -bd -q5m -L Foo_Instance -C /etc/foo/mail/Foo_Instance/sendmail.cf
... e, em seguida, verifique os processos em execução, vejo:
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
A principal diferença aqui é que não vejo "Queue runner" na saída ps. Por que não vejo processos separados nas duas vezes? Ou nenhum dos dois tempos?
Mesmo que eu não veja o processo do executor de filas, vejo indicações nos logs de que as filas estão sendo repetidas.
A princípio, pensei que poderia estar acontecendo porque havia um espaço errado após -q
. Mas o comportamento ainda acontece mesmo se eu correr
/usr/sbin/sendmail -L Foo_Instance -Ac -q5m -C /etc/foo/mail/Foo_Instance/submit.cf
Eu pensei que talvez "Queue runner@xx:xx:xx" pudesse ser uma indicação de que o corredor da fila é um corredor de fila persistente, mas o batbook indica que um processo do executor persistente teria a palavra "em execução":
root 22947 512 ? S 08:32 0:00 sendmail: running queue: /var/spool/mqueues/
q.1/df
sendmail -bd -q5m
inicia o processo do daemon principal (sendmail: accepting connections
). O processo daemon gerará o processo do executor de fila para uma execução de fila única, quando necessário .Você precisa de um comando separado para iniciar o processo do executor de fila do cliente (
sendmail: Queue runner@00:05:00 for /var/spool/clientmqueue
). O comportamento do corredor de fila do cliente é controlado porsubmit.cf
não porsendmail.cf
.[Algumas configurações usam cron jobs periódicos de "execução única" para processar filas de clientes em vez de executores de filas permanentes]