o “echo -m / proc / sysrq-trigger” é executado no contexto do processo quando é executado a partir do script?

0

temos um script que é executado abaixo do comando sysrq para obter informações de memória no syslog e, em seguida, o script copia o syslog.

echo -m > /proc/sysrq-trigger

Da documentação eu vejo que no nível do kernel "handle_sysrq" é chamado que é executado no contexto de interrupção, mas existem duas maneiras em que sysrq é acionado, certo?

  1. uma é a combinação de teclas no teclado. E
  2. outra é escrevendo o caractere apropriado para /proc/sysrq-trigger file.

Agora queremos saber se o memory-info é gravado em syslog/dmesg imediatamente antes que o eco retorne ou seja memory-info seja gravado após o eco retornar?

    
por AnkurTank 15.09.2016 / 16:53

1 resposta

1

Eu estou supondo que sua pergunta subjacente é como ter certeza de que as informações da memória foram registradas no momento em que você copiou o log do sistema ...

Eu não verifiquei o código, mas acho tudo assíncrono. Se você quiser serializar as operações, pode fazê-lo escrevendo para /dev/kmsg ; qualquer coisa que você escrever lá acaba no buffer do kernel. Então, algo parecido com

echo m > /proc/sysrq-trigger
echo "whatever you want" > /dev/kmsg

deve fazer o truque ... Você pode até adicionar uma mensagem serial à mensagem em /dev/kmsg , então você tem certeza de que está copiando a coisa certa depois, ou até mesmo embrulhar o despejo de memória com duas mensagens.

    
por 15.09.2016 / 17:05