Acumulando processos do sendmail

0

Estou com um problema em que vejo muitas ocorrências de um processo específico:

/usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t

Eu fiz um pouco de leitura e parece que os processos estão começando a enviar a saída stdout de um cron job, mas por algum motivo nunca terminam.

Existe um processo por dia, por isso acredita que está relacionado com os trabalhos cron diários. O horário de início do processo em ps aux (04:01 diariamente) parece coincidir com o horário de início para os trabalhos cron diários (04:02 diariamente). O conteúdo de /etc/cron.daily é:

0anacron  0logwatch  cups  logrotate  makewhatis.cron  mlocate.cron  rpm  tmpwatch

O conteúdo de /etc/crontab é:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
 # run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Até agora, eu matei manualmente esses processos quando eles chegam a números grandes; se eu não fizer isso, o servidor ficará sem recursos e o serviço em execução será interrompido. Na pior das hipóteses, vou simplesmente configurar outro cron que elimine esses processos, mas prefiro parar o problema na origem. Alguém sabe a causa deste problema? Alguém pode fornecer etapas para depurar?

    
por jwan 20.04.2016 / 18:40

2 respostas

0

O problema não estava enraizado no sendmail. Usando pstree , consegui determinar que havia muitos outros processos que também eram pendentes, não terminavam e eram criados por crond. Analisei cada um desses processos e descobri que um processo estava fazendo algo nos moldes de

cat /var/log/some_log_file

Quando eu fiz ls /var/log/some_log_file , vi

/var/log/some_log_file|

some_log_file era na verdade um pipe nomeado! Parece que o cron job estava tentando ler a partir deste pipe, mas nunca terminou porque nada foi enviado para o pipe.

Como uma correção, eu deletei e fiz disso um arquivo normal.

    
por 27.04.2016 / 18:44
0

No meu caso, eu tinha 5 cinco trabalhos cron e eles enviavam e-mail por padrão . Então, eu precisava adicionar essa expressão no final das tarefas do cron.

>/dev/null 2>&1

Por exemplo:

*/5 * * * * /bin/sh /usr/share/shell/gnk-loader-rev2-20028-0027.sh > /dev/null 2>&1

Você pode encontrar mais informações aqui ou aqui .

    
por 26.07.2017 / 21:08