Combinações de Teclas de Segurança SysRq

USANDO A TECLA MÁGICA SYSRQ SE O LINUX TRAVAR.

Quem é que já não se deparou com um travamento no Linux onde nem a combinação Ctrl+Alt+Backspace deu jeito?

Para esta situação pode-se usar uma das combinações da tecla mágica SysRq (magic SysRq key), teclas para comandos de segurança ou de emergência contra falha do sistema.

Veja algumas das combinações que permitem, quase sempre, recuperar o controle do pinguim:
Nota: tecla SysRq = tecla PrtScr (ou Print Screen)

Alt+SysRq+r
Tira o teclado e o mouse do controle do servidor X (interface gráfica). Isso pode ser útil quando o X estiver travado. Pode-se mudar para um terminal e matar o X (ou ainda, verificar os logs).

Alt+SysRq+s
Realiza a sincronização de todo o sistema de arquivos montado, ou seja, escreve todos os dados em memória virtual para a física.

Alt+SysRq+f
Mata o processo devorador de memória.

Alt+SysRq+e
Envia um SIGTERM para todos os processos fazendo com que se preparem para o shutdown ou reboot, exceto para o init.

Alt+SysRq+i
Envia um SIGKILL para todos os processos, exceto para o init.

Alt+SysRq+k
Mata todos os processos que estão rodando no momento, incluindo a interface gráfica (alternativa ao Control+Alt+Backspace).

Alt+SysRq+b
Reinicia o sistema imediatamente, sem desmontar partições ou realizar sincronização.

Alt+SysRq+o
Desliga o sistema.

Créditos: http://linuxlike.blogspot.com.br/

Comandos Kill e Killall

KILL

Permite enviar um sinal a um comando/programa. Caso seja usado sem parâmetros, o kill enviará um sinal de término ao processo sendo executado.

Sintaxe: kill [opções] [sinal] [número]

Onde: número é o número de identificação do processo obtido com o comando ps

Também pode ser o número após o sinal de % obtido pelo comando jobs para matar uma tarefa interrompida.
Onde: sinal: Sinal que será enviado ao processo. Se omitido usa -15 como padrão.
opções: -9: Envia um sinal de destruição ao processo ou programa. Ele é terminado imediatamente sem chances de salvar os dados ou apagar os arquivos temporários criados por ele.

Você precisa ser o dono do processo ou o usuário root para termina-lo ou destruí-lo. Você pode verificar se o processo foi finalizado através do comando ps. Os tipos de sinais aceitos pelo GNU/Linux são explicados em detalhes em ‘Sinais do Sistema’ on the facing page.
Exemplo:

kill 500, kill -9 500, kill %1.

Algumas opções do comando.
• -l – lista os sinais que podem ser enviados a um processo junto com o comando kill.
• -l número – fornece o nome do sinal identificado pelo número fornecido.
• -s sinal – especifica o sinal a ser enviado, onde sinal pode ser um nome ou um número.
• -sinal – especifica o sinal a ser enviado, onde sinal é um número.

Comentários sobre o comando.
Suponha que o resultado do comando ps seja como mostrado abaixo.
PID TTY TIME CMD
841 pts/0 00:00:00 bash
1314 pts/0 00:00:00 teste
Neste exemplo temos dois processos sendo executados: bash e teste. Para finalizar o processo teste, basta digitar .

kill 1314

que corresponde a enviar o sinal SIGTERM (ou 15) ao processo.
Caso o processo não seja encerrado, você pode forçar o término do processo com o seguinte comando:

kill -9 1314

O comando acima corresponde a enviar o sinal SIGKILL ao processo. Esta opção informa ao sistema que o comando kill não pode ser ignorado, ele deve ser imediatamente processado. Neste caso, o sistema não se preocupa em salvar dados ou apagar arquivos temporários criados durante a execução do processo.
São exemplos de sinais que podem ser enviados com o comando kill:
• SIGHUP (1) : reinicializa o processo (o processo ler novamente os seus arquivos de configuração).
• SIGTSTP (20) : suspende a execução de um processo.

Um exemplo prático, se por acaso o Firefox, que geralmente consome muita memória e também do processador, e se o X(Ambiente Gráfico) ficar muito lento, você precisa entrar em um terminal virtual(Ctrl+Alt+F2) e use o Kill, mas primeiro você precisa saber o PID do Firefox, então entre com o comando: top

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1292 luiz 20 0 355032 114672 33052 R 35,9 12,8 14:40.30 cinnamon
934 root 20 0 215656 44444 26584 R 16,6 5,0 15:56.83 Xorg.bin
1834 luiz 20 0 68404 22612 16904 S 2,7 2,5 0:03.63 gnome-terminal-
1309 luiz 20 0 68540 8540 7036 S 1,0 1,0 0:51.34 nm-applet
4191 luiz 20 0 718272 274336 79248 S 0,7 30,6 5:20.83 firefox
1197 luiz 20 0 14232 1644 1452 S 0,3 0,2 0:00.31 dbus-daemon
1201 luiz 20 0 18284 1060 824 S 0,3 0,1 0:00.75 at-spi2-registr
1313 luiz 20 0 38476 12016 10668 S 0,3 1,3 0:14.61 clipit

Repare que o PID do Firefox é 4191, então no terminal virtual, entre com o comando:

kill -9 4191

Esse comando encerrará o Firefox, então você poderá voltar para o Ambiente Gráfico novamente, pressionando: Ctrl+Alt+F7
Obs.: Para encerrar o comando top, no terminal virtual, pressione q

Comando xkill

O comando kill e killall podem ser aplicados em qualquer terminal virtual, já o comando xkill só poderá ser aplicado dentro de um terminal gráfico.
Quando você digita dentro de um terminal gráfico o comando xkill e passa o mouse por cima da barra de título de qualquer janela notará que o cursor possui a forma de um X, ao clicar sobre a barra de título o aplicativo é fechado.

$ xkill

 

Até a próxima.