Há algo que eu possa fazer no terminal quando um programa congela e o Ubuntu não responde? [duplicado]

0

Eu estava trabalhando normalmente e, de repente, um programa entrou em colapso: ele não respondeu e sua janela ficou cinza. Depois disso, apareceu esta mensagem perguntando o que fazer: fechar o programa ou esperar que ele responda.

Eu selecionei fechar o programa, mas ele não funcionou como esperado: todo o ubuntu foi congelado e eu não pude fazer nada.

Eu percebo então que digitar Ctrl + Alt + t eu poderia abrir o terminal, e funcionou: ele abriu o terminal. Mas eu não sabia o que fazer a seguir .

Então, minha pergunta é: O que fazer no terminal se um programa congelar? No meu caso, era nautilus (eu estava conectando a um servidor remoto, usando-o como um programa de FTP) e Acabei de reiniciar a máquina com sudo reboot .

É uma droga. Teria sido muito melhor fechar o programa sem resposta, mas como posso fazer isso? E se eu não souber o nome do programa que não responde?

FYI , eu li este tópico " elementos de interface do usuário tornam-se completamente sem resposta " e eu não acho que é o mesmo caso aqui, porque eu normalmente não tenho esse problema, é algo que é incomum, e a memória está funcionando bem, e a máquina é bastante novo (intel Core i7, 8 Gb ram).

    
por Rosamunda 20.10.2014 / 19:49

2 respostas

3

Você pode fazer xkill . Este utilitário pequeno cria automaticamente a próxima janela em que você clica.

Outra opção que você pode usar é algo chamado top ou htop . Procure por um processo estranho, especialmente algo marcado como um "zumbi" ou ocupando muitos recursos do sistema. Você pode então matá-lo usando a tecla K . Use o kill code 9, pois isso causa um kill instantâneo e forçado do processo.

Diga que o programa ruim é nautilus . Use um destes métodos:

  1. Use xkill no terminal e clique na janela do Nautilus. X terminará sua sessão, causando a falha do Nautilus. Spam a tecla ESC por alguns segundos para garantir que o Xkill ainda não esteja em execução.
  2. killall -9 nautilus
  3. Execute top , procure por nautilus e mate-o de cima.

Observe que você pode precisar usar sudo priviles para eliminar alguns processos.

    
por Kaz Wolfe 20.10.2014 / 19:57
2

Uma das grandes vantagens de um sistema baseado em terminal que temos é que a resposta é soar SIM.

O que eu normalmente faço é mudar para o terminal 1 (sua área de trabalho está sempre no terminal 7) com controle - alt - f1 .

Se você sabe o que é o programa, isso será bem fácil: encontre o ID do processo dessa tarefa e mate-o. A tarefa desaparecerá no terminal 7 e, se isso resolver o problema, o sistema responderá novamente.

Exemplo de uso do firefox: quando você inicia o firefox, ele recebe um ID de processo e você pode visualizá-lo com ps -ef | grep firefox . Substitua o firefox com o que você deseja pesquisar.

ps -ef |grep firefox
rinzwind  5046  1484 48 19:52 ?        00:00:01 /usr/lib/firefox/firefox
rinzwind  5113  4992  0 19:52 pts/4    00:00:00 grep --color=auto firefox

(o processo referente ao grep é meu comando)

O primeiro número do meu nome de login é o ID do processo. kill -9 5046 matará o firefox:

~$ kill -9 5046
~$ ps -ef |grep firefox
rinzwind  5148  4992  0 19:54 pts/4    00:00:00 grep --color=auto firefox

e o firefox desapareceu na minha área de trabalho.

O problema normalmente é identificar o ID do processo correto: quando você tem 5 sessões do firefox abertas ... obter a correta será um problema. Então você pode precisar adicionar mais alguma lógica para reduzi-la.

Aviso: use o bom senso. Matar os IDs de processo inferiores (abaixo de 500) deve ser evitado.

    
por Rinzwind 20.10.2014 / 19:57