Есть ли в ядре -способ отладки обмена данными по протоколу netlink?

Командаrm(«удалить» )удаляет файл. Имя удаляемого файла задается в переменной BTEQTEMPDELLOGS, а не напрямую. Любые сообщения об ошибках(2>)от rmотправляются на/dev/null(выбрасываются ), то же самое для нормального вывода(1>).

Сама переменная BTEQTEMPDELLOGSсоздается в первой строке путем объединения переменной LOGS, литерала '/' и переменной tablenameсо строкой ".DELlog" в конце.

Вот документация по (перенаправлению ввода и )вывода:GNU bash manual :Перенаправления .

В вашем примере перенаправляется только вывод, а не ввод. 1>перенаправляет обычные сообщения, выдаваемыеrm(обычно их нет ), 2>перенаправляет только сообщения об ошибках (файл не найден и т. д. ).

Вот более подробная информация об этих числах ("дескрипторы файлов" с точки зрения программиста):stdin (0 ), stdout (1 )и stderr (2 )в -/вывод программ .

Вот документация по/dev/null:Википедии :НУЛЕВОЕ устройство

0
20.08.2021, 20:35
1 ответ

Я прибег к добавлению собственного ведения журнала печати в ядро, чтобы получить доступ к netlink. -Я не вижу никакого официального решения, которое можно было бы настроить для этого.

rtnetlink_rcv_msgв linux/net/core/rtnetlink.c— хорошее место для начала, и вы можете добавить вызовы printkбез дополнительной работы, например:

printk(KERN_INFO "netlink msg recv msgtype %d\n", type);
1
21.08.2021, 15:50

Теги

Похожие вопросы