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:
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
O Crontab está vazio
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.