Como descobrir o que inicia um processo no Ubuntu Server?

1

Eu tenho um caso grave de um processo de fuga no meu servidor. Esse é um Sidekiq (executor de tarefas em segundo plano baseado em Ruby para um aplicativo da Web baseado em Rails), ele pode ser encontrado como o aplicativo que mais consome CPU em top (tecnicamente, nome de processo exibido como ruby ) e seu PID alterações, que indica relançamentos constantes.

Parece que foi tentado executar com opções incorretas, devido a que o processo leva muita CPU para inicializar (Sidekiq carrega todo o ambiente do meu aplicativo Rails em sua memória) e depois morre em um instante. Então, algo relança novamente com as mesmas opções incorretas, repetindo o ciclo e prejudicando o desempenho do servidor. Eu preciso encontrar algo e pará-lo.

O que eu tentei até agora:

  1. matar o processo não vai ajudar, obviamente - quanto mais cedo eu matar, quanto mais cedo ele reaparece
  2. a reinicialização do servidor não ajudará - o processo invasor é encontrado no top assim que eu puder acessar o servidor após ele ser reinicializado novamente

  3. O Crontab está vazio

  4. Eu achei que alguém tentou usar monit lançamento baseado em Sidekiq, mas configurações monit não têm nada para ligá-los com o processo de fuga, além disso - eu só não fui para remover monit completamente do servidor (não foi configurado e ocioso de qualquer forma). Após a remoção completa e reinicialização - o processo invasor é ainda está lá.

Eu preciso traçar agora, o que poderia reaparecer o processo. Existe alguma maneira confiável de encontrar o processo de iniciação? Quais outras formas poderiam ser usadas para daemonizar o processo de tal forma que ele estivesse sendo executado após uma reinicialização do servidor e após sua própria falha? Quaisquer pistas e dicas muito apreciadas.

P.S. Esse é o meu próprio servidor de teste, não um de produção, e eu tenho um certo grau de liberdade lá (incluindo sudo e o direito de instalar ou remover software), mas eu não iria para movimentos lame como reinstalação completa do sistema operacional ou movendo o aplicativo com uma configuração de sidekiq para uma pasta diferente. Eu gostaria de encontrar e matar o bastardo. E sim, havia alguns operadores nesse servidor, ninguém se lembra de nada.

UPDATE : Encontrei o rato! Capturar PIDs ou processos de vida curta parecia ser uma superengenharia para mim. Eu deduzi que a coisa que relança deveria ter as configurações em / etc, então eu fiz:

 find -H /etc -type f -exec grep -H sidekiq {} \;

E havia, escondendo em um arquivo em / etc / init /. Simplesmente apagou aquele arquivo e ele comeu aquele mesmo momento.

    
por user20532 28.07.2016 / 12:24

0 respostas