Havia outros desenvolvedores logados como root que eu queria expulsar.
Então eu emiti
pkill -KILL -u root
Então percebi que provavelmente matei todos os tipos de processos raiz.
Eu danifiquei meu sistema? Não consigo acessá-lo através do SSH agora.
ATUALIZAÇÃO: o servidor da Web ainda está em execução. Mas não consigo conectar via SSH agora. Não tenho ideia do que fiz.
Respostas:
Uma resposta rápida é que você matou o sshd (e o senhor sabe o que mais) e não poderá fazer login novamente no sistema usando SSH. A menos que você tenha algum outro método para obter acesso ao sistema (como um console remoto, IPMI etc.), será necessário reiniciar o sistema que restaurará o serviço SSH e outros serviços.
Espero que você tenha acesso físico à caixa; nesse caso, você provavelmente só precisa pressionar o botão liga / desliga. Perceba que você matou muitos processos e esteja preparado para alguma corrupção. O Linux foi projetado para se recuperar de uma falha no sistema e você basicamente acionou uma falha 'manual'. A maioria das coisas deve se recuperar bem após uma reinicialização. Você pode ter todos os tipos de mensagens de erro interessantes nos arquivos de log.
Resposta longa:
Este é um ótimo experimento mental e uma boa pergunta para entrevista de emprego. "O que acontece se você executou o X ..." Essa é uma coisa divertida de experimentar em sua própria máquina virtual privada, mas nunca deve ser feita em uma caixa real. Todo mundo comete erros. Lembre-se e aprenda com o seu erro. Cometer erros é a melhor maneira de aprender. Cometer erros na produção é uma lição dolorosa que acontecerá ocasionalmente em sua carreira.
Este comando enviará um 'SIGKILL' (por exemplo,
kill -9
KILL é um alias para SIGKILL) a todos os processos pertencentes ao root. É uma coisa muito ruim de se fazer em um sistema.kill -9
deve ser evitado, exceto como último recurso.Seu comando eliminou agressivamente todos os processos pertencentes à raiz; os processos foram eliminados imediatamente e não tiveram a chance de limpar. Para ter uma idéia do que você matou, faça login em uma caixa Linux saudável e liste os processos pertencentes ao root, usando um comando como um desses. Você normalmente não precisa ser root para executar estes comandos:
Você pode ter matado o Init (PID # 1), que gera novos processos. Seu sistema pode não conseguir criar novos processos. Portanto, ele pode continuar funcionando por enquanto, mas está doente e precisa ser reparado o mais rápido possível. Conforme o tempo passa, o sistema fica cada vez mais doente. Quanto mais você esperar, pior será.
Eu estou supondo que você está usando o Apache. Parece que os processos filhos do servidor da web ainda estão em execução porque não pertencem ao usuário 'root'. No entanto, o processo do servidor web pai normalmente é de propriedade do root e você o matou. Como resultado, novos processos filhos não serão gerados. Isso ficará bom por um tempo, porque você provavelmente possui processos filhos suficientes para atender a solicitações e, normalmente, esses processos filhos persistem até serem mortos ou travados. Novamente, a solução mais rápida é reiniciar a máquina.
fonte
Você provavelmente terá que reiniciar o sistema, pois matou praticamente todos os serviços críticos nele. Como você faz isso depende de quais ferramentas você possui ou de qual transporte você precisa para chegar ao data center.
fonte
O sistema está executando porque o kernel está executando. Você não pode acessar o sshd porque matou o daemon. Provavelmente o init também foi encerrado, o que significa que você não pode criar novos processos. Portanto, novas conexões apache podem não ser estabelecidas (parâmetros de configuração aplicados;)).
Você não pode enviar um sinal para os threads do kernel, é por isso que o sistema está sendo executado, mas os serviços de propriedade raiz foram encerrados e, para uma ressurreição normal, você deve reiniciá-lo.
fonte