У меня есть утилита, которая печатает вывод, используя printk. Например,
printmsg.c:
void main() {
printk(KERN_DEBUG "Message alert id:XXXX!\n");
printk(KERN_DEBUG "Message alert id:YYYY!\n");
return;
}
Если запустить эту утилиту в системе, она напечатает сообщение, как показано ниже, на консоли
#./printmsg
Message alert id:XXXX!
Message alert id:YYYY!
Принимая во внимание, что если я запускаю это приложение для передачи вывода в grep, это не работает.
#./printmsg | grep XXXX
Message alert id:XXXX!
Message alert id:YYYY!
Мне известно, что printk отправляет сообщения в буфер журнала ядра и dmesg для печати буфера журнала. С опциями dmesg для печати вывода на stdoutput.
Однако я ищу опцию для направления вывода в grep мгновенно при запуске утилиты и выводе дампов на консоль.
Ограничение: printk здесь не может быть скомпрометирован.