Xkill e processos

Embora o kernel Linux seja extremamente estável, a ponto de ser usado em sistemas de missão crítica, o mesmo não se aplica, necessariamente, a todos os inúmeros aplicativos que usamos no dia a dia. Tanto o GNOME quanto o KDE são plataformas bastante complexas, compostas por um número muito grande de componentes que trocam informações entre si. Não é de se estranhar que, às vezes, algo dê errado.

Para complicar, o rápido desenvolvimento do sistema e a necessidade por novos aplicativos acabam fazendo com que, muitas vezes, as distribuições tragam aplicativos ainda em estágio beta, ou que ainda não estejam completamente estáveis, o que acaba resultando em travamentos ou em outros problemas diversos.

A vantagem do Linux neste ponto é que você quase nunca precisará reiniciar todo o sistema, basta matar o aplicativo problemático, ou, no pior dos casos, reiniciar o ambiente gráfico.

A forma mais prática de finalizar aplicativos é usar o xkill, o “matador de programas” incluído no X. Ele pode ser chamado pressionando “Ctrl+Alt+Esc“, chamando o comando “xkill” usando o “Alt+F2” (que abre a janela do “Executar aplicativo”) ou diretamente através do terminal.

Ao ativar o xkill, o cursor do mouse vira um X (ou uma caveira, de acordo com a distribuição) e basta clicar sobre a janela do aplicativo travado para encerrá-lo na marra:

O xkill simplesmente finaliza a primeira janela sobre a qual clicar, sem nenhuma confirmação adicional, por isso é importante chamá-lo com a janela em vista. Você pode “desarmar” o xkill depois de ativado, usando o botão direito do mouse.

Uma observação importante é que, por default, o Ubuntu (pelo menos até a versão 8.10) não oferece um atalho de teclado para matar aplicativos travados usando o xkill, diferente de outras distribuições, onde é usado o “Ctrl+Alt+Esc”. Com isso, você acaba sendo obrigado a pressionar Alt+F2 e rodar o comando “xkill” manualmente, o que não é muito prático.

Aplicativos travados são um problema que ocorre mesmo nas melhores famílias, por isso uma forma rápida de acabar com eles acaba sendo importante. Vamos então à explicação de como recriar o atalho para o xkill no Ubuntu, aproveitando para falar sobre a configuração de atalhos no GNOME.

A maneira tradicional de definir atalhos no GNOME é usar o “System > Preferências > Atalhos de teclado”, onde você pode especificar as teclas de atalho para um conjunto de ações pré-definidas:

O problema é que o atalho para o xkill não está disponível na lista, o que nos obriga a adotar o procedimento manual.

Para isso, comece abrindo o “gconf-editor” usando o Alt+F2 (ou através do terminal). Dentro dele, acesse o “/apps/metacity/keybinding_commands” e, no campo “command_1” especifique “/usr/bin/xkill”, que é o caminho completo para o comando:

Em seguida, acesse o “/apps/metacity/global_keybindings” e especifique o atalho de teclas que acionará o comando, como em “<Ctrl>Escape” (Ctrl+Esc), “<Ctrl><Shift>K” (Ctrl+Shift+K) ou outro atalho que preferir.

Como comentei anteriormente, o default é o “Ctrl+Alt+Esc”, mas no GNOME o atalho já é usado para alternar entre as janelas, por isso você vai primeiro precisar redefiní-lo se quiser dedicá-lo ao xkill):

Você pode usar essa mesma dica para definir atalhos para outros aplicativos, basta usar outros campos disponíveis no “apps/metacity/keybinding_commands” para indicar o comando e, em seguida, especificar o atalho de teclado no “apps/metacity/global_keybindings”.

Voltando à questão dos aplicativos travados, em situações mais graves, onde o mouse parar de responder e o ambiente gráfico ficar congelado, você pode reiniciar o X (o que reabre toda a parte gráfica) pressionando “Ctrl+Alt+Backspace”. Embora você possa perder arquivos não salvos, esta é uma solução muito menos radical (e mais rápida) do que reiniciar o micro no botão.

Outra opção é mudar para um dos terminais de texto puro, pressionando Ctrl+Alt+F1 (ou qualquer outra das teclas F, até a F6) e finalizar o aplicativo que está bloqueando o ambiente gráfico. Se você sabe qual é o culpado (ou pelo menos suspeita quem seja), pode finalizá-lo usando o comando “killall”, como em “killall totem” ou “killall firefox

O problema com o killall é que, em muitos casos, o comando para fechar o programa não é o mesmo que seu nome. Para os casos onde você não souber o nome correto do programa, existe o comando “ps“, que mostra todos os processos abertos. Existem várias opções para este comando; a que costumo usar mais frequentemente é “ps x | more“, que mostra todos os processos iniciados usando o seu login de usuário, sempre dando uma pausa quando a lista encher a tela:

Na lista, os nomes dos aplicativos aparecem na coluna da direita. Veja que, em muitos casos, o mesmo programa aparece várias vezes; seja porque você abriu várias instâncias, seja por ele realmente ser dividido em vários processos diferentes. A boa notícia é que o killall se encarrega de acabar com todos.

Na coluna da esquerda está o PID de cada processo, um número de identificação que pode ser usado em conjunto com o comando kill para matar um processo específico, como em “kill 4060”. Muitos aplicativos aparecem na lista com nomes gigantes, de forma que é mais fácil fechá-los pelo número.

Em casos mais extremos, de aplicativos rebelados que não respondam ao chamado do killall ou do kill, você pode resolver o problema adicionando um “-9” no comando, como em:

# kill -9 6340

A diferença entre o “kill” ou o “killall” e o “kill -9” é que no primeiro caso o sistema envia um “bilhete azul” ao aplicativo, solicitando que ele desocupe o lugar. O “kill -9”, por sua vez, é um comando que orienta o sistema a fechar o aplicativo na marra, mandando os seguranças para removê-lo à força.

Além do “ps -x”, você pode tentar o “ps -aux, que inclui todos os processos ativos. A lista é sempre longa, pois inclui todos os serviços e componentes do sistema que são carregados automaticamente durante o boot. Outro programa de texto com a mesma função é o pstree. Ele mostra os processos na forma de uma árvore, permitindo que você veja como eles se relacionam.

Como em outros casos, você pode também acompanhar os aplicativos de uma maneira mais amigável usando os monitores de sistema. Se você estiver no KDE, pode gerenciar os processos de uma forma muito mais amigável usando o Ksysguard. Basta procurar por ele no iniciar ou pressionar “Ctrl+Esc” para abri-lo.

No GNOME, está disponível o “Monitor de Sistema”, que pode ser aberto através do “Sistema > Administração”, ou usando o comando “gnome-system-monitor”. Além de mostrar os aplicativos ativos e oferecer a opção de finalizá-los, ele inclui também informações sobre o uso do processador, uso de memória e até mesmo sobre o espaço livre nas partições:

Outra opção importante é a “Alterar prioridade”, que serve como uma interface para o comando “nice”, que permite ajustar o nível de prioridade do aplicativo em relação aos demais. Por default, todos os aplicativos (com exceção de alguns componentes do sistema) utilizam o valor “0”, o que os coloca todos no mesmo nível.

Uma boa maneira de evitar que aplicativos que consumam muito processamento (como ao converter vídeos) deixem o sistema lento, é simplesmente ajustar a opção, usando um valor mais alto, entre 5 e 10. Isso faz com que o aplicativo seja mais bonzinho e passe a usar os ciclos ociosos de processamento, sem atrapalhar os outros:

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X