Como enviar o comando SysRq sobre a conexão ssh?

1

Estou trabalhando na placa personalizada baseada em BeagleboneBlack,
Recentemente eu estava depurando problemas de travamento do sistema, eu tinha acesso ao console de depuração usando minicom , e eu poderia ativar o log usando a combinação de teclas Ctrl + A , F '. p>

No entanto, todos os dispositivos de produção não terão o console de depuração. Eu não serei capaz de conectá-lo através de minicom , No entanto, eu terei acesso através da conexão ssh.

Agora, eu queria saber se existe alguma maneira de enviar chaves SysRq por conexão ssh,

No funcionamento normal do dispositivo, se eu usar echo h > /proc/sysrq-trigger , a saída é impressa no console de depuração (ou serial) (minicom) e não no ssh. :(,
existe alguma maneira de obter isso? saída para o terminal ssh?

Eu sei que o que estou perguntando é um pouco como impossível, se o sistema bloquear a conexão ssh não estará vivo. Mas, apenas no caso de a conexão estar ativa, quero saber se existe alguma maneira de enviar chaves SysRq.

    
por AnkurTank 09.08.2016 / 09:27

2 respostas

2

Você não pode mostrar diretamente a resposta para o terminal ssh, mas a saída do kernel é registrada em dmesg (e geralmente /var/log/messages também); então você pode echo h > /proc/sysrq-trigger; dmesg | tail para ver o que foi impresso.

    
por 09.08.2016 / 11:53
2

A função direta do SysRq só funciona no console.

Em um console "VGA" padrão, esta é a chave literal SysRq (às vezes marcada como Print Screen) em conjunto com Alt e "command".

Em um console serial, isso pode ser acessado pelo sinal BREAK.

No entanto, por SSH, não há acesso direto ao SysRq e você tem que usar o arquivo /proc/sysrq-trigger .

A documentação do kernel é mais detalhada no SysRq e como diferentes combinações de teclas funcionam em diferentes plataformas: link

Como a saída do SysRq é gerada pelo kernel, ele entra no buffer de anel. Isso pode ser lido por dmesg .

Além disso, dependendo de como você configurou seu SO, syslog ou rsyslog pode direcionar a saída do kernel para um arquivo por exemplo, para rsyslog

$ModLoad imklog
kern.*    -/var/log/kernel
Sistemas baseados em

systemd podem expor este log através do comando journalctl .

    
por 09.08.2016 / 12:32