Algumas distribuições Linux têm o kernel.sysrq=16
que significa que apenas Sysrq+s (sincronização) é permitido. Como um exemplo: Fedora (25 e 28) tem definido como tal em/usr/lib/sysctl.d/50-default.conf
Eu tive que criar um arquivo como /etc/sysctl.d/95-sysrq.conf
eu defini manualmente kernel.sysrq=1
para que ele estivesse disponível o mais rápido possível (mas possivelmente não em breve, dependendo da situação):
$ grep -nHi sysrq /usr/lib/sysctl.d/* /etc/sysctl.d/*
/usr/lib/sysctl.d/50-default.conf:16:# Use kernel.sysrq = 1 to allow all keys.
/usr/lib/sysctl.d/50-default.conf:17:# See http://fedoraproject.org/wiki/QA/Sysrq for a list of values and keys.
/usr/lib/sysctl.d/50-default.conf:18:kernel.sysrq = 16
/etc/sysctl.d/95-sysrq.conf:1:kernel.sysrq=1
Existe uma maneira de habilitar o Sysrq desde a inicialização antecipada, possivelmente também ignorando qualquer configuração para kernel.sysrq
? por exemplo, adicionando um parâmetro de inicialização do kernel (por exemplo cat /proc/cmdline
, para os atuais), como no menu de inicialização do Grub (ou na linha xen.cfg
de ).kernel=
Existe um parâmetro de inicialização do kernel
sysrq_always_enabled
de acordo com o doc :Eu testei o Sysrq para funcionar (por exemplo, ajuda, sincronização) mesmo quando
kernel.sysctl=0
(é exatamente como o documento acima diz), se eu adicionar o argumento de inicialização do kernelsysrq_always_enabled
(nota: não precisa sersysrq_always_enabled=1
).(para verificar novamente, também testei o Sysrq para NÃO funcionar quando
kernel.sysctl=0
esysrq_always_enabled
NÃO está presente em/proc/cmdline
)O código -fonte também confirma.
Nota:
/proc/sys/kernel/sysrq
é outra maneira de ler/escreverkernel.sysrq
Para mais informações sobre sysrq: https://www.kernel.org/doc/html/v4.15/admin-guide/sysrq.html
(embora
sysrq_always_enabled
não seja mencionado lá, mas está aqui )EDIT: Quando
sysrq_always_enabled
está em vigor, há uma linha dmesg: