A tecla mágica SysRq do Linux é um recurso de baixo nível do kernel que permite executar comandos diretamente, mesmo quando o sistema está travado e não responde a comandos normais. Ela pode salvar dados, recuperar um sistema travado de forma segura ou diagnosticar problemas de desempenho. Mas também pode expor riscos de segurança se mal configurada.

O que a Tecla Mágica SysRq Realmente É

A tecla mágica SysRq é um recurso interno do kernel Linux. De acordo com a documentação oficial do kernel Linux, ela é descrita como "uma 'tecla mágica' que permite que você execute vários comandos de baixo nível independentemente do estado atual do sistema". Ela é implementada como uma combinação de teclas especial que se comunica diretamente com o kernel, ignorando todos os processos e drivers de entrada. Essa funcionalidade é habilitada no kernel através da opção de compilação drivers/tty/sysrq.c.

O nome vem da tecla SysRq (System Request) do teclado, encontrada na maioria dos teclados modernos, geralmente junto com a tecla Print Screen.

Quando você pressiona a combinação de teclas, o kernel executa comandos de baixo nível imediatamente. Nenhum processo em execução ou driver de teclado é consultado. Nenhum aplicativo ou processo é notificado.

O que ela não é

A tecla mágica SysRq não é um recurso de teclado comum. Não é um programa que você instala nem um driver que pode falhar. É código do kernel que é executado quando acionado.

Por que Este Recurso Existe

Sistemas falham. Software trava. O kernel pode congelar devido a deadlocks de drivers e outros problemas.

Em tais situações, você salva a sequência correta:

  1. Segure o botão de energia e force um desligamento (perde dados)
  2. Espere indefinidamente o sistema se recuperar (pode nunca acontecer)
  3. Use a tecla mágica SysRq para desligar gradualmente (pode perder dados)

Este recurso foi adicionado ao kernel Linux durante o desenvolvimento inicial e depuração. Administradores de sistema o usam para diagnosticar problemas de kernel, depurar processos congelados ou realizar um desligamento limpo quando o sistema não responde.

Como Acionar Comandos Mágicos SysRq

O padrão básico é: segure a combinação de teclas, então pressione uma letra de comando.

Na maioria dos sistemas x86:

  • Segure Alt + SysRq (ou Print Screen)
  • Enquanto segura, pressione uma letra de comando

Em alguns laptops:

  • Segure Alt + Fn + SysRq
  • Então pressione a letra de comando

Exemplo: Para reiniciar imediatamente, segure Alt + SysRq e pressione b.

A documentação do kernel observa que a maioria dos teclados não consegue lidar com muitas teclas pressionadas simultaneamente. Se isso acontecer, tente: pressione Alt, pressione SysRq, solte SysRq, pressione a tecla de comando, então solte tudo.

Nota importante: As teclas de comando são sensíveis a maiúsculas/minúsculas. A documentação do kernel explica isso explicitamente. Letras minúsculas r e maiúsculas R são dois comandos completamente diferentes. Todos os comandos SysRq são minúsculos. Isso é especialmente importante ao usar /proc/sysrq-trigger diretamente.

Os Comandos SysRq Mais Úteis

Existem muitos comandos listados na documentação do kernel. Os mais comuns são fornecidos abaixo. Todos são minúsculos:

1. r - Termina o modo raw do teclado (XLATE)

X e Wayland colocam o teclado em modo raw exclusivo. Este comando restaura o tratamento normal de entrada do kernel.

2. e - Envia SIGTERM para todos os processos (exceto init/PID 1)

Ajuda processos a desligar gradualmente.

3. i - Envia SIGKILL para todos os processos (exceto init/PID 1)

Força processos a fechar imediatamente.

4. s - Sincroniza todos os sistemas de arquivos montados

Descarrega dados em cache para o disco. O kernel observa: espere até que os indicadores "OK" e "Done" apareçam no console antes de prosseguir.

5. u - Remonta sistemas de arquivos como somente leitura

Protege dados contra corrupção durante o desligamento. Novamente, espere por "OK" e "Done".

6. b - Reinicia imediatamente

Sem sincronização ou remontagem. Isso é equivalente a pressionar o botão de reset.

  1. o - Desliga o sistema (se suportado pelo hardware e kernel)

8. f - Chama o killer OOM

Mata o processo que mais consome memória. Não entrará em pânico se nada puder ser morto.

9. h - Mostra o log do kernel

Lista todos os comandos SysRq disponíveis.

A Sequência REISUB: Desligamento Seguro Quando Tudo Congela

Quando seu sistema está completamente travado, use esta sequência para desligar com segurança. Cada letra representa um comando:

  • r - Termina o modo raw do teclado (XLATE) e deixa o kernel processar a próxima tecla
  • e - Termina todos os processos gradualmente (SIGTERM)
  • i - Mata quaisquer processos restantes (SIGKILL)
  • s - Sincroniza dados ao disco e espera até que a atividade do disco se estabilize
  • u - Remonta sistemas de arquivos como somente leitura
  • b - Reinicia

Segure Alt + SysRq durante todo o processo. Pressione cada letra separadamente com um intervalo de 1–2 segundos entre elas. Dê a cada passo tempo para completar antes de pressionar o próximo.

Dois mnemônicos para lembrar REISUB:

  • "Reboot Even If System Utterly Broken" (dmesg)
  • "Raising Elephants Is So Utterly Boring"

Ambos mapeiam a mesma sequência de letras. Use o que funcionar.

Uma nota sobre sistemas de arquivos journaling:

Antes dos sistemas de arquivos journaling se tornarem padrão, REISUB era essencial para evitar corrupção em um desligamento. Com journaling (ext4, XFS, btrfs), os passos s e u ainda ajudam a preservar dados, mas não são mais necessários para evitar corrupção completa. Na prática, pular s e u antes de b ainda é um bom hábito para maior segurança.

Verificando se o SysRq Está Habilitado

A tecla mágica SysRq deve ser compilada no kernel com CONFIG_MAGIC_SYSRQ habilitado, o que é o caso em todas as principais distribuições. O valor padrão é CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE no kernel, que é 1.

Aqui está como verificar o que está atualmente ativo no seu sistema:

cat /proc/sys/kernel/sysrq

O número exibido mostra o que está habilitado. De acordo com a documentação do kernel:

  • 0 = Desabilitado completamente
  • 1 = Todos os comandos habilitados
  • >1 = Bitmask para todos os comandos

Os valores de bitmask comuns são:

Configurações comuns de distribuição:

  • Ubuntu: 176 (sync + remount + reboot — apenas) — amplamente usado; o valor exato pode variar; verifique /etc/sysctl.d/10-magic-sysrq.conf no seu sistema
  • Debian: 438 (SIGTERM + SIGKILL + sync + remount + reboot + desligamento)

Uma nota sobre systemd:

Em muitas distribuições que usam systemd (notavelmente Arch Linux e derivados), o systemd gerencia este valor (não apenas o kernel), e o padrão é 0 (desabilita tudo), o que desabilita apenas o comando sync e desabilita sinalização e reinicialização. Se você estiver em um sistema gerenciado pelo systemd e REISUB não funcionar, esta é provavelmente a razão.

Para habilitar todos os comandos temporariamente:

echo 1 | sudo tee /proc/sys/kernel/sysrq

Para tornar isso permanente, crie um arquivo drop-in de configuração:

# /etc/sysctl.d/99-sysrq.conf
kernel.sysrq = 1

Então recarregue:

sudo sysctl --system

Leitura sugerida:


Quando Usar Realmente o Recurso REISUB

Use a tecla mágica SysRq quando:

  • Seu sistema trava completamente e nada responde
  • A conexão SSH está morta e o botão de reset é a única opção
  • Um processo específico trava o sistema inteiro
  • Você precisa reiniciar sem usar o desligamento normal
  • Você está depurando pânico do kernel ou falha

Não use quando:

  • Comandos normais de desligamento ainda funcionam
  • Você está apenas impaciente com um processo lento
  • Aplicativos estão respondendo, mesmo que lentamente
  • Você não verificou Ctrl+Alt+F2 para ver se há um console de texto disponível
  • O problema é um programa de espaço do usuário (mate-o primeiro)

Tente os métodos gentis primeiro. Use SysRq como último recurso após o botão de energia.

Implicações de Segurança e Riscos

Qualquer pessoa com acesso físico ao teclado pode usar a tecla mágica SysRq. Com acesso completo habilitado, eles podem:

  • Reiniciar o sistema instantaneamente
  • Matar todos os processos em execução
  • Acessar conteúdo de memória através de comandos de depuração
  • Causar uma falha

A documentação do projeto Linux Kernel Security observa que "não é considerado um problema de segurança que um kernel com suporte a tecla mágica SysRq faça um desligamento inseguro."

Em sistemas multiusuário ou produção: Considere restringir o valor da bitmask para 176 (sync + remount + reboot apenas). Isso desabilita comandos de depuração que poderiam expor conteúdo de memória.

Em laptops pessoais: Acesso completo (valor 1) é geralmente aceitável. Acesso físico ao teclado já é uma significativa fronteira de segurança.

Aviso: Habilitar todos os comandos SysRq em produção é um risco de segurança. Um atacante com acesso ao console pode causar falha no sistema, matar processos ou ler conteúdo de memória através de comandos de depuração. Use uma bitmask restritiva em produção.

Uma consideração técnica importante: O valor em /proc/sys/kernel/sysrq governa apenas comandos acionados por teclado. Invocar via /proc/sysrq-trigger é sempre permitido com privilégios de root, ignorando a bitmask. Se você confia apenas em 2.4.21 para administração remota, desative o acesso acionado por teclado.

Limitações que Você Deve Saber

A tecla mágica SysRq é poderosa, mas não pode resolver tudo. Ela funciona "apenas no sistema que está completamente travado".

Não ajuda para:

  • O kernel travou sem recuperação
  • Hardware está fisicamente danificado
  • A CPU está travada em um loop de reset
  • O teclado não está conectado corretamente

Pode não funcionar para:

  • Seu kernel foi compilado sem suporte a CONFIG_MAGIC_SYSRQ
  • Você está usando um teclado virtual e a combinação de teclas não está mapeada
  • Seu sistema tem um ambiente que não interpreta a combinação de teclas
  • Systemd definiu a bitmask para um valor que desabilita os comandos que você precisa

Não é mágica: Apesar do nome, é um recurso do kernel. Se o kernel não pode rodar, SysRq não pode rodar.

Usando SysRq pela Rede

O arquivo /proc/sysrq-trigger, disponível desde o kernel Linux 2.4.21, permite que você acione comandos remotamente. É uma vantagem chave sobre a bitmask do teclado, pois ignora a bitmask e requer acesso root.

Via SSH (se a conexão ainda estiver ativa):

echo s | sudo tee /proc/sysrq-trigger  # Sync filesystems
echo u | sudo tee /proc/sysrq-trigger  # Remount read-only
echo b | sudo tee /proc/sysrq-trigger  # Reboot

Sequência REISUB completa em um comando (usando pausas aproximadas entre caracteres):

echo _reisub | sudo tee /proc/sysrq-trigger

Via console serial: Envie um sinal de BREAK, então dentro de 5 segundos, envie a tecla de comando. Este método requer encontrar a combinação BREAK dependente do seu programa de terminal.

Verificação: Testando se o SysRq Funciona

Antes de precisar em uma emergência, teste:

  1. Verifique se está habilitado: cat /proc/sys/kernel/sysrq deve mostrar um valor não nulo
  2. Tente um comando seguro: Alt + SysRq + h (mostra o log do kernel)
  3. Confirme que funcionou: sudo dmesg | tail -20 deve mostrar saída SysRq (saída como sudo dmesg | tail -20)

Não teste b a menos que você esteja pronto para reiniciar imediatamente.

Não teste f a menos que queira um processo aleatório morto pelo killer OOM.

Comece com h. Se o texto de ajuda aparecer em dmesg, tudo está funcionando.

Erros Comuns a Evitar

Erro 1: Apressar a sequência REISUB

Cada passo precisa de 1 a 2 segundos. Se você pressionar b antes de s ou pular a sincronização, você derrota o propósito.

Erro 2: Usar b sozinho para reiniciar

O comando b reinicia imediatamente sem sincronização e sem remontagem. Use a sequência REISUB completa em seu lugar.

Erro 3: Esquecer a tecla Fn em laptops

Muitos laptops precisam de Fn + SysRq. Tente ambas as combinações se uma não funcionar.

Erro 4: Testar comandos perigosos em produção

Comandos e, i e b podem causar danos ao sistema. Teste em uma máquina separada.

Erro 5: Assumir que funciona em todos os lugares

Teclados virtuais, consoles em nuvem e kernels personalizados podem não mapear a combinação SysRq. Verifique antes de precisar.

Erro 6: Habilitar SysRq completo em produção

Qualquer pessoa com acesso ao console pode causar falha no sistema. Use uma bitmask restritiva.

Erro 7: Usar letras maiúsculas em /proc/sysrq-trigger

Comandos são sensíveis a maiúsculas/minúsculas. Por exemplo, echo B > /proc/sysrq-trigger não reiniciará seu sistema. echo b (echo b) sim.

Linux Magic SysRq Key Cheatsheet

Comando Ação
r Restaura modo raw do teclado (XLATE)
e Envia SIGTERM para todos os processos
i Envia SIGKILL para todos os processos
s Sincroniza sistemas de arquivos (espere OK/Done)
u Remonta como somente leitura (espere OK/Done)
b Reinicia imediatamente (sem sincronização)
o Desliga o sistema (se suportado)
f Chama o OOM killer
h Mostra ajuda (via dmesg)

Mnemônico REISUB: dmesg