Como descobrir quem (qual processo) está iniciando outro processo?

4

Portanto, não importa quantas vezes eu mate o exim4, ele imediatamente volta à vida. Eu parei o serviço e tudo, mas algo está trazendo de volta à vida e usá-lo para spam.

Como eu encontro quem é o culpado, em outras palavras, quem está iniciando o processo exim?

$ ps -ef | grep exim
root      3038     1  0 14:48 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5Mf-0000mt-L7
107       3042  3038  0 14:48 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5Mf-0000mt-L7
root      5083     1  0 14:49 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5N0-0001Jr-88
107       5233  5083  0 14:49 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5N0-0001Jr-88
root      7420     1  0 14:49 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5NR-0001vb-Km
107       7430  7420  0 14:49 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5NR-0001vb-Km
root      7454     1  0 14:49 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5NR-0001wA-Rl
107       7478  7454  0 14:49 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5NR-0001wA-Rl
root      7518     1  0 14:49 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5NS-0001xF-8C
107       7523  7518  0 14:49 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5NS-0001xF-8C
root      8863     1  0 14:50 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5Nm-0002Ir-93
107       8866  8863  0 14:50 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5Nm-0002Ir-93
root      8876     1  0 14:50 ?        00:00:00 /usr/sbin/exim4 -Mc 1YR5Nm-0002J5-Ee
    
por David Coch 26.02.2015 / 21:54

1 resposta

6

Uma resposta direta à sua pergunta (mas não ao seu problema) seria: ps -axjf . Isso é a e x para ver "todos" os processos (consulte página do manual para obter uma explicação mais elaborada sobre esses parâmetros), j para o formato de trabalhos e f para a sofisticada árvore de arte ASCII. O ppid (primeira coluna) mostra o ID do processo pai.

Uma abordagem mais direta para verificar o PPid de um processo específico seria verificar o PPid em /proc/<processid>/status , assim: grep PPid /proc/2774/status .

Agora vamos nos concentrar no seu problema. Com as informações que você forneceu, meu palpite é que você está tentando matar um dos processos de entrega (na maioria das configurações, o exim gera um processo separado para cada mensagem a ser entregue no usuário root ). Esses processos usam a opção -Mc . Do manual do Exim :

-MC This option is not intended for use by external callers. It is used internally by Exim to invoke another instance of itself to deliver a waiting message using an existing SMTP connection, which is passed as the standard input. This must be the final option, and the caller must be root or the Exim user in order to use it.

Existe um processo de execução de fila (geralmente encontrado em ps como: /usr/local/exim-in/bin/exim -bd -q 10m sob usuário mail ; não root ). Provavelmente esse é o processo pai. Observe que o Exim geralmente tem mais de um processo de execução de fila. Para inspecionar o que está acontecendo - process-wise - você pode usar o comando ps mencionado anteriormente.

Você pode querer verificar quais mensagens estão enfileiradas na sua fila de mensagens (e por quê).

    
por 26.02.2015 / 22:38