O que começou este processo?
Você pode usar ps para encontrar o pai de cada processo, adicionando -l ( ps -axl ) para fornecer uma saída "longa" ou solicitando especificamente o ppid :
ps -o ppid 2074
PPID
2072
Repita para 2072 para ver o que começou isso (provavelmente o CRON).
Por que dois processos?
o cron passa cada comando para um shell. De crontab (5) :
The entire command portion of the line, up to a newline or a "%" character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the cronfile.
Se você tiver a seguinte linha em crontab :
0 * * * * python2.7 /opt/some/script.py
... então quando a entrada precisa ser executada (a cada hora, na hora), o cron executa o shell ( /bin/sh ) com os dois argumentos -c e python2.7 /opt/some/script.py .
O shell interpreta tudo o item depois de '-c' como um comando para executar. Ele encontra python2.7 de PATH e o executa com o único argumento /opt/some/script.py . Então, dependendo do seu shell (incluindo para qual /bin/sh aponta), agora podem haver dois processos em execução:
-
/bin/sh -c python2.7 /opt/some/script.py -
/usr/bin/python2.7 /opt/some/script.py
É por isso que ps está mostrando 2 eibd process e 2 python2.7 , apesar de haver apenas uma entrada para cada em seu crontab .
Algumas camadas podem evitar um segundo processo como este. Veja Por que não há clone ou fork aparente no comando bash simples e como é feito?