Como a chave do SysRq é usada em um sistema Linux?

6

Eu entendo que a chave SysRq pode ser usada para executar comandos de sistema de baixo nível em um servidor Linux travado.

Alguém pode explicar como usar esse recurso, se ele funciona remotamente por meio do ssh ou de uma janela do console do vmware, e qualquer outra coisa para a qual ele possa ser usado (além da reinicialização de um sistema travado)?

    
por Brent 23.05.2009 / 00:30

3 respostas

4

Comandos chave SysRq são emitidos pressionando Alt + SysRq e digitando qualquer combinação de teclas. A combinação mais comum que eu conheço é Alt + SysRq + RSEIUB :

  • R - Alterna o teclado do modo raw
  • S - Sincroniza todos os sistemas de arquivos montados
  • E - Envia o sinal SIGTERM para todos os processos, exceto init
  • I - Envia o sinal SIGKILL para todos os processos, exceto init
  • U - Remontar todos os sistemas de arquivos montados no modo somente leitura
  • B - Reinicialize o sistema imediatamente, sem desmontar partições ou sincronizar

A página da wikipedia tem mais informações sobre as várias chaves e o que elas fazem.

Para responder ao restante da sua pergunta, sim, ele funciona remotamente (contanto que você ainda tenha comunicação com o sistema) e em um console VMWare. Enquanto o kernel estiver lendo as teclas pressionadas, as entradas do SysRq serão lidas e ativadas. (Ele efetivamente envia comandos diretamente para o kernel, ignorando o resto do sistema)

    
por 23.05.2009 / 00:39
2

Você pode executar alt-sysrq- / (alt-sysrq-? com shift não importa) para obter a lista de comandos disponíveis. Novos estão sendo adicionados o tempo todo. A maioria é perigosa.

Para executar o alt-sysrq-T, você também pode "ecoar T > / proc / sysrq-trigger", ou em um break-T do console serial.

Algumas distribuições Linux vêm com o sysrq magic desativado como uma medida de segurança equivocada. Você verá "kernel.sysrq = 0" em /etc/sysctl.conf. Altere isso para "kernel.sysrq = 1" e execute "sysctl -p". Você deve sempre verificar isso em um novo sistema Linux antes de executar um congelamento que faz com que você deseje que o magic sysrq esteja funcionando.

    
por 23.05.2009 / 05:14
2

REISUB é usado com mais frequência, para reinicializar com segurança um sistema preso. Mas não é a única combinação possível.

Normalmente o sysrq não funciona quando o X está em execução. Se um ctrl + alt + fX não funcionar, você pode tentar enviar 'R' antes dele. Se malsucedido, às vezes um "saK" com 'K' conserta as coisas; Ele mata todos os processos dentro do nível de execução atual, incluindo o servidor X. Então você pode tentar outros comandos sysrq. Depois de um saK no servidor X, você pode até fazer login a partir de um tty se o sistema ainda estiver em execução.

E, às vezes, quando um processo bobo congela a inicialização, quando ctrl + C, ctrl + Z ou ctrl + alt + del não faz nada, um 'E' seguido por um ctrl + alt + del pode fazer uma reinicialização segura e normal.

O comando 'T' imprime um traço para que você possa inspecionar qual processo ou função está causando problemas.

Veja alt dos comandos pressionando alt + sysrq + H

    
por 24.05.2009 / 00:37