Eu estava trabalhando normalmente e de repente um programa travou: 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.
Selecionei fechar o programa, mas não funcionou como esperado: todo o Ubuntu travou e não pude fazer nada.
Percebi então que digitando Ctrl + Alt + t
consegui abrir o terminal, e funcionou: 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 travar?No meu caso era o nautilus (eu estava me conectando a um servidor remoto, usando-o como um programa FTP) e acabei reiniciando a máquina com sudo reboot
.
É uma droga. Teria sido muito melhorpara fechar o programa que não responde, mas como posso fazer isso? E se eu não souber o nome do programa que não responde?
Para sua informação, eu li este tópico "Os elementos da interface do usuário param completamente de responder" e não acho que seja o mesmo caso aqui, porque normalmente não tenho esse problema, é um tanto incomum, e a memória está funcionando bem, e a máquina é bem nova (Intel Core i7, 8 Gb de RAM ).
Responder1
Você pode fazer xkill
. Este pequeno utilitário bacana destrói automaticamente a próxima janela em que você clicar.
Outra opção que você pode usar é algo chamado top
ou htop
. Procure um processo estranho, especialmente algo marcado como “zumbi” ou que esteja consumindo muitos recursos do sistema. Você pode então matá-lo usando a Kchave. Use o código kill 9, pois isso causa uma interrupção instantânea e forçada do processo.
Digamos que o programa ruim seja nautilus
. Use um destes métodos:
- Use
xkill
no terminal e clique na janela do Nautilus. O X encerrará sua sessão, causando o travamento do Nautilus. Envie spam para a ESCchave por alguns segundos para garantir que o Xkill ainda não esteja em execução. killall -9 nautilus
- Corra
top
, procurenautilus
e mate-o de cima.
Observe que pode ser necessário usar sudo
privilégios para encerrar alguns processos.
Responder2
Uma das grandes vantagens de um sistema baseado em terminal que temos é que a resposta é um sonoro SIM.
O que normalmente faço é mudar para o terminal 1 (sua área de trabalho está sempre no terminal 7) com control- alt- f1.
Se você sabe o que é o programa, isso será muito fácil: encontre o ID do processo dessa tarefa e elimine-o. A tarefa desaparecerá no terminal 7 e se isso resolver o travamento, seu sistema responderá novamente.
Exemplo usando o Firefox: quando você inicia o Firefox, ele obtém um ID de processo e você pode visualizá-lo com ps -ef | grep firefox
. Substitua o Firefox pelo 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 atrás do meu nome de login é o ID do processo. kill -9 5046
vai 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 sumiu da minha área de trabalho.
O problema normalmente é identificar o ID do processo correto: quando você tem 5 sessões do Firefox abertas...obter o correto será um pouco problemático. Talvez seja necessário adicionar mais lógica para restringi-lo.
Aviso: use o bom senso. Deve-se evitar eliminar os IDs de processo mais baixos (abaixo de 500).