Como determinar quem iniciou um processo?

Como determinar quem iniciou um processo?

a cada poucos minutos eu encontrei esse processo em execução

 root      949062  100  0.0  37204  1488 ?        R<   05:14   0:51 /usr/local/cpanel/3rdparty/bin/clamdscan --quiet --no-summary /etc/passwd

Está usando 100% da CPU. Eu o mato e depois de algum tempo o vejo novamente.
Como posso determinar quem está executando esse processo?

Responder1

Uma maneira seria substituir o processo por um script "wrapper".

 # cd /usr/local/cpanel/3rdparty/bin/
 # cp -p clamdscan clamdscan.orig 
 # cat >clamdscan <<eof
 #!/bin/bash 
 echo ==================== >>/tmp/clamscan.log
 date  >>/tmp/clamscan.log
 id    >>/tmp/clamscan.log
 ps -fp $PPID   >>/tmp/clamscan.log
 tty   >>/tmp/clamscan.log
 pstree -Ap >> /tmp/clamscan.log 
 exec $0.orig $*
 eof

Dessa forma, cada chamada do clamscan registrará algumas informações. Os comandos são apenas para ilustrar que você pode alterá-los conforme sua conveniência. É claro que você não deve deixá-lo rodar por muito tempo se não quiser ter um diretório /tmp completo.

Para abortar basta fazer:

 # cd /usr/local/cpanel/3rdparty/bin/
 # mv clamdscan.orig clamdscan

informação relacionada