ATRIBUIÇÕES :
https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key que foi baseado no trabalho original de
Créditos
Escritos por Mydraal
Atualizado por Adam Sulmicki
Atualizado por Jeremy M. Dolan 28/01/2001 10:15:59
Adicionado por Crutcher Dunnavant
https://askubuntu.com/a/11194/102029 mneiss forneceu links para o LaunchPad.
Conteúdo
O que é sysrq?
Por que o RESIUB (O) não funciona?
1 Como faço para que o sysrq se comporte da maneira que eu quero?
1.1 Qual é a chave mágica do SysRq?
1.2 Como habilito a chave mágica SysRq?
1.3 Como uso a chave mágica SysRq?
1.4 O que são as chaves de 'comando'?
1.5 Ok, então para que posso usá-los?
1.6 Solucionar problemas
1.6.1 Suspenso antes da execução dos initscripts
1.6.2 Às vezes, o SysRq parece 'travado' depois de usá-lo, o que posso fazer?
1.6.3 Eu acertei o SysRq, mas nada parece acontecer, o que há de errado?
1.6.4 Quero adicionar eventos de chave SysRQ a um módulo, como isso funciona?
1.6.5 Conclusão
1.6.6 APÊNDICE
Nota.
Você pode usar o Ctrl+ Fpara usar o Índice útil.
O que é o SysRq?
Um método bem conhecido e usado comum de recuperar o uso da máquina após congelar ou travar, limitando o risco de corrupção de disco, causando danos ao arquivo do sistema ou perda de dados, é usar
Alt+ SysRq+ re então se então ee depois ie depois ue depois be / ou se necessário ( o)
Isso não tem funcionado como esperado para muitos (por exemplo, eu e James) em todos os tipos de opções, desde> = 8.04LTS até a versão 13.04 atual.
Por que o RESIUB (O) não funciona?
Considere esta descrição do erro encontrada no LaunchPad Bug 194676 :
Descrição do problema:
Por padrão, o SysRq é ativado por padrão nos sistemas de desktop Ubuntu, o que é inestimável quando um sistema é bloqueado e você deseja interrompê-lo o mais suavemente possível ou depurar o problema. No entanto, muitas pessoas ficam surpresas que você também pode pedir para despejar o conteúdo da memória atual no console (ou dmesg), embora apenas no teclado.
O openSUSE define uma máscara de bits padrão 176 no SysRq que, por padrão, restringe você a sincronizar, reiniciar e "remontar somente leitura". Isso interrompe as pessoas que usam o sysrq por padrão para inspecionar a memória que parece sensata.
Os desenvolvedores do Ubuntu viram a necessidade de fazer algo sobre isso e a melhor solução, considerando as possíveis complicações da observação mencionada, é aplicar o bitmask 176 sysrq por padrão, criando a necessidade de entrada do usuário para definir o sysrq como desejarem. Bitmask 176 só permite S, U, Bque é de sincronização, remonte partições montadas e reinicialização.
A leitura do relatório completo dos erros e dos comentários destacará algumas opções que podem ser aplicáveis ao seu sistema.
O efeito acumulativo de diferentes hardwares, kernels, teclados e máscaras de bit significa que o sysrq está se comportando de maneira diferente para pessoas diferentes.
Um método para obter a saída txt sobre como o sistema está usando o sysrq é aplicar os comandos sysrq do tty (quando o sistema não sofrer bloqueios / congelamentos). Fazer isso pode indicar que o sysrq não foi completamente desativado, mas está usando a máscara de bit 176.
A pesquisa de / proc / sys / kernel / sysrq em um 13.04 Desktop amd64 liveDVD e uma instalação 13.04 Desktop amd64 confirma que o padrão atualmente é deixar o sysrq no bitmask 176.
Se o sysrq funcionar para você; pode valer a pena perguntar: "Se eu não alterei as configurações do 10-magic-sysrq, então; quem fez isso?"
1 Como faço para que o sysrq se comporte da maneira que eu quero?
O que segue é uma cópia e colar editada de https://fedoraproject.org/wiki/QA/Sysrq .
1.1 Qual é a chave mágica do SysRq?
É uma combinação de teclas 'mágica' à qual você pode bater, ao qual o kernel responderá independentemente do que estiver fazendo, a menos que esteja completamente trancado.
1.2 Como habilito a chave mágica SysRq?
O sysrq está embutido no kernel do Ubuntu, mas está desativado no momento da inicialização, por padrão, usando 10-magic-sysrq.conf.
Para reativá-lo no momento da inicialização, você deve editar o arquivo /etc/sysctl.d/10-magic-sysrq.conf. descomentar esta linha habilitará todas as funções do sysrq:
# 1 - enable all functions of sysrq
Ao executar um kernel com o SysRq compilado, / proc / sys / kernel / sysrq controla as funções que podem ser chamadas pela tecla SysRq. Aqui está a lista de valores possíveis em / proc / sys / kernel / sysrq:
0 - disable sysrq completely
1 - enable all functions of sysrq
>1 - bitmask of allowed sysrq functions (see below for detailed function description):
2 - enable control of console logging level
4 - enable control of keyboard (SAK, unraw)
8 - enable debugging dumps of processes etc.
16 - enable sync command
32 - enable remount read-only
64 - enable signalling of processes (term, kill, oom-kill)
128 - allow reboot/poweroff
176 - allow only sync, reboot and "remount read-only"
256 - allow nicing of all RT tasks
Você pode definir o valor no arquivo pelo seguinte comando.
echo "number" >/proc/sys/kernel/sysrq
Então, para habilitá-lo totalmente, seria.
echo "1" > /proc/sys/kernel/sysrq
Ou também pode habilitá-lo fazendo.
sysctl -w kernel.sysrq=1
Nota.
O valor de / proc / sys / kernel / sysrq influencia apenas a chamada através de um teclado. A invocação de qualquer operação via / proc / sysrq-trigger é sempre permitida (por um usuário com privilégios de administrador - veja abaixo).
1.3 Como uso a chave mágica SysRq?
Ubuntu Desktop
Você pressiona a tecla combo Alt+ SysRq+ command key.
NB- Veja as notas nesta seção e na seção Solução de problemas para outras configurações padrão possíveis para outros sistemas e teclados.
É possível definir qualquer caractere de sua escolha: Todas as arquiteturas
Escreva um caractere para / proc / sysrq-trigger:
echo t > /proc/sysrq-trigger
definiria o Tcomportamento como SysRq
Nota.
Alguns teclados podem não ter uma tecla rotulada SysRq. A SysRqchave também é conhecida como Print Screenchave. Além disso, alguns teclados não podem suportar tantas teclas pressionadas ao mesmo tempo; portanto, você pode ter mais sorte com Alt+ SysRq- SysRqe pressione command keye solte tudo. Veja a redação completa do controle de qualidade em que este guia se baseia em https://fedoraproject.org/wiki/QA/Sysrq#How_do_I_use_the_magic_SysRq_key.3F para obter mais informações sobre isso.
1.4 O que são as chaves de 'comando'?
'b' - Will immediately reboot the system without syncing or unmounting your disks.
'c' - Will perform a kexec reboot in order to take a crashdump.
'd' - Shows all locks that are held.
'e' - Send a SIGTERM to all processes, except for init.
'f' - Will call oom_kill to kill a memory hog process.
'g' - Used by kgdb on ppc and sh platforms.
'h' - Will display help (any key that is not listed here will bring forth help )
'i' - Send a SIGKILL to all processes, except for init.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual terminal.
Nota.
Veja comentários importantes abaixo na seção SAK.
'l' - Shows a stack backtrace for all active CPUs.
'm' - Will dump current memory info to your console.
'n' - Used to make RT tasks nice-able
'o' - Will shut your system off (if configured and supported).
'p' - Will dump the current registers and flags to your console.
'q' - Will dump a list of all running timers.
'r' - Turns off keyboard raw mode and sets it to XLATE.
's' - Will attempt to sync all mounted filesystems.
't' - Will dump a list of current tasks and their information to your console.
'u' - Will attempt to remount all mounted filesystems read-only.
'v' - Dumps Voyager SMP processor info to your console.
'w' - Dumps tasks that are in uninterruptable (blocked) state.
'x' - Used by xmon interface on ppc/powerpc platforms.
'0'-'9' - Sets the console log level, controlling which kernel messages will be printed to your console. ('0', for example would make it so that only emergency messages like PANICs or OOPSes would make it to your console.)
1.5 Ok, então para que posso usá-los?
Un raw é muito útil quando o servidor X ou um programa svgalib falha.
O Sa k(Secure Access Key) é útil quando você deseja ter certeza de que não há nenhum programa de trojan em execução no console que possa pegar sua senha quando você tentar fazer o login. Isso matará todos os programas em um determinado console, permitindo que você tenha certeza de que o prompt de login que você vê seja realmente o init, e não algum programa de trojan. Outros acham útil como (System Attention Key), que é útil quando você deseja sair de um programa que não permite alternar consoles. (Por exemplo, X ou um programa svgalib.)
Nota.
Na sua forma verdadeira, não é uma SAK verdadeira como a de um sistema compatível com c2 e não deve ser confundida como tal.
Repetir bé bom quando você não consegue desligar.
Nota.
É geralmente considerado uma boa prática umontar primeiro
O Crashdump pode ser usado para disparar manualmente um crashdump quando o sistema está travado.
Nota.
O kernel precisa ter sido construído com o CONFIG_KEXEC ativado!
A sincronização é ótima quando o sistema está bloqueado, permite que você sync seus discos e certamente diminuirá a chance de perda de dados e fscking.
Aviso
A sincronização não ocorreu até você ver "OK" e "Concluído" aparecer na tela. (Se o kernel estiver realmente em conflito, talvez você nunca receba a mensagem OK ou Concluído.
Umount é basicamente útil da mesma maneira que o Sync.
Os níveis de log 0- 9são úteis quando seu console está sendo inundado com mensagens do kernel que você não deseja ver. A seleção 0impedirá que todas as mensagens do kernel, exceto as mais urgentes, cheguem ao seu console.
Nota.
Eles ainda serão registrados se syslogd / klogd estiver ativo
T erm e k iserão úteis se você tiver algum tipo de processo descontrolado, não conseguirá matar de nenhuma outra maneira, principalmente se estiver gerando outros processos.
Nota.
Ao experimentar pânico ruim do kernel, faça Alt+ Sysrq+ ethen Alt+ Sysrq+ uthen Alt+ Sysrq+ ie finalmente Alt+ Sysrq+b
1.6 Solucionar problemas
1.6.1 Suspenso antes da execução dos initscripts
Se a máquina estiver travada antes da execução dos scripts iniciais, inicialize com sysrq_always_enabled=1
1.6.2 Às vezes, o SysRq parece "preso" depois de usá-lo, o que posso fazer?
Tocar em shift, alte controlem ambos os lados do teclado e pressionar novamente uma sequência sysrq inválida corrigirá o problema. (ou seja, algo como alt+ sysrq+ z).
Mudar para outro console virtual ( Ctrl+ Alt+ Fn1- Fn6) e depois novamente Ctrl+ Alt+ Fn7também deve ajudar.
1.6.3 Eu bati SysRq, mas nada parece acontecer, o que há de errado?
Existem alguns teclados que enviam códigos de escopo diferentes para SysRqo 0x54 predefinido. Portanto, se SysRqnão funcionar showkey -s
imediatamente para um determinado teclado, corra para descobrir a sequência apropriada do scancode. Em seguida, use setkeycodes <sequence> 84
para definir essa sequência para o SysRqcódigo usual (84 é decimal para 0x54). Provavelmente é melhor colocar esse comando em um script de inicialização.
Aviso
Você sai showkey
não digitando nada por dez segundos.
1.6.4 Quero adicionar SysRqeventos importantes a um módulo, como funciona?
Para registrar uma função básica na tabela, você deve primeiro incluir o cabeçalho include/linux/sysrq.h
, isso definirá tudo o que você precisa. Em seguida, você deve criar uma estrutura sysrq_key_op e preenchê-la com ...
A função do manipulador de teclas que você usará.
Uma string help_msg, que será impressa quando o SysRQ imprimir ajuda
Uma string action_msg, que será impressa imediatamente antes de seu manipulador ser chamado. Seu manipulador deve estar em conformidade com o protótipo em 'sysrq.h'
Após a criação do sysrq_key_op, você pode chamar a função do kernel register_sysrq_key (chave int, struct sysrq_key_op * op_p); isso registrará a operação apontada por 'op_p' na chave da tabela 'chave', se esse espaço na tabela estiver em branco. No momento do descarregamento do módulo, você deve chamar a função unregister_sysrq_key (chave int, struct sysrq_key_op * op_p), que removerá a chave op apontada por 'op_p' da chave 'key', se e somente se estiver atualmente registrada nesse slot. Isso ocorre caso o slot tenha sido substituído desde que você o registrou.
O SysRqsistema Magic funciona registrando operações de chave em uma tabela de consulta de chave, definida em 'drivers / char / sysrq.c'. Essa tabela de chaves possui diversas operações registradas nela em tempo de compilação, mas é mutável e 2 funções são exportadas para interface com ela: register_sysrq_key e unregister_sysrq_key. Obviamente, nunca deixe um ponteiro inválido na tabela. ie; quando o módulo que chamou register_sysrq_key () sai, ele deve chamar unregister_sysrq_key () para limpar a entrada da tabela de chaves sysrq usada.
Nota.
Ponteiros nulos na tabela são sempre seguros.
Se por algum motivo você sentir a necessidade de chamar a função handle_sysrq de dentro de uma função chamada handle_sysrq, você deve estar ciente de que está em um bloqueio (você também está em um manipulador de interrupção, o que significa que não dorme!), Portanto você deve chamar __handle_sysrq_nolock.
1.6.5 Conclusão
Use Alt+ SysRq+ Se, em seguida U, Bpara sincronizar, tente remontar todos os sistemas de arquivos montados e, em seguida, reinicie, se necessário. Sem alterar nada nos arquivos do sistema.
Se o Alt+ SysRq+ Bnão reiniciar o sistema, pode ser necessário editar o arquivo /etc/sysctl.d/10-magic-sysrq.conf para permitir a tentativa de aplicar o Alt+ SysRq+ B(ou / e Oapós editar / proc / sys / kernel / sysrq bitmask para habilitar a reinicialização e o desligamento do sistema usando o sysrq.Você pode fazer isso por qualquer um dos métodos descritos acima.
1.6.6 APÊNDICE:
Veja também - http://ubuntuforums.org/showthread.php?t=617349 e https://www.kernel.org/doc/Documentation/sysrq.txt
Para aqueles com problemas no teclado do Apple MacBook em relação ao sysrq, consulte: https://help.ubuntu.com/community/AppleKeyboard e https://bugs.launchpad.net/mactel-support/+bug/262408
Informação relativa interessante - Depois de assistir ao episódio 17 08 2013 do programa BBC "Click" e o artigo "cyberwarfare" realmente me chamou a atenção. O programa também possui seu próprio site. Clique se não puder assistir ao programa. FAWC