Por que o procmail está suspenso?

3

Eu tenho um arquivo de aliases.local do sendmail bobo configurado para passar e-mails para o procmail. Esta é uma configuração que estava trabalhando em antigos sistemas Solaris. Agora estou executando em um sistema RHEL6:

# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.2 (Santiago)

Portanto, eu tenho este arquivo /etc/mail/aliases.local:

users-log: "|/usr/bin/procmail /auto/data/users/logs/.procmailrc"

O /auto/data/users/logs/.procmailrc tem esta aparência:

# cat /auto/data/users/logs/.procmailrc
MAILDIR=/auto/data/users/logs/

:0
responselog

Pelo que entendi, o procmail simplesmente escreve o e-mail para o arquivo / auto / data / users / logs / responselog. Mas, por algum motivo, vejo o número de processos do procmail crescer.

# ps -ef | grep procmail  | wc -l
19
# sleep 2
# ps -ef | grep procmail  | wc -l
23

E esse número continua a crescer. Se eu strace -p eu recebo esta saída:

# ps -ef | grep procmail 
mail      2872  2861  0 17:05 ?        00:00:00 /etc/smrsh/procmail /auto/data/users/logs/.procmailrc
...
# strace -p 2872
Process 2872 attached - interrupt to quit
fcntl(6, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=1697659298, len=0}

e o processo apenas fica pendurado. O que está acontecendo? Eu configurei mal o procmail?

    
por Red Cricket 10.05.2016 / 00:23

1 resposta

1

Obrigado a Jeff Schaller. Seu comentário leva a uma solução para o problema.

A responsabilidade é de aproximadamente 1697659298 bytes? Pode ser que o procmail esteja tentando anexar um arquivo grande e fazer backup de si mesmo. - Jeff Schaller 20 horas atrás

Supõe-se que seja uma tarefa cron que seja executada para girar o arquivo de log e manter seu tamanho reduzido. Depois que eu consertei o cronjob, o problema desapareceu. Eu também achei que o procmail nos sistemas Solaris foi construído com diferentes opções de bloqueio de arquivos. No Solaris procmail -v mostra Locking strategies: dotlocking, fcntl(), lockf() e no linux procmail -v mostra Locking strategies: dotlocking, fcntl() . Não tenho certeza o que isso significa. Se alguém souber por favor, comente.

Eu encontrei este link: link

    
por 10.05.2016 / 21:46