码迷,mamicode.com
首页 > 其他好文 > 详细

AIX系统中使用bsdlog函数输出内核信息

时间:2015-09-15 18:07:51      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

AIX系统中使用bsdlog函数输出内核信息 
(1)修改syslogd进程的配置文件/etc/syslog.conf,使用echo命令在文件末尾添加内容“kern.info /tmp/kerninfo.log” 
echo “kern.info /tmp/kerninfo.log” >> /etc/syslog.conf 
(2)使用touch命令创建kerninfo.log文件,用此文件作为kernel info级别消息的输出文件 
touch /tmp/kerninfo.log 
(3)重启syslogd进程,重启syslogd进程有两种方式 
1.使用kill -hup pid来重启syslogd进程 
使用ps命令或使用cat /etc/syslog.pid查看syslogd进程的pid 
ps -ef | grep syslogd 
root 3604610 2555940 0 12:31:26 - 0:00 /usr/sbin/syslogd 
cat /etc/syslog.pid 
3604610 
kill -hup 3604610 
2.refresh -s syslogd 重启syslogd进程 
0513-095 The request for subsystem refresh was completed successfully. 
扩展: 
startsrc -s syslogd 开启syslogd进程 
stopsrc -s syslogd 关闭syslogd进程 
注意:若删除了/tmp/kerninfo.log文件,然后再重新创建了/tmp/kerninfo.log文件,那么必须重启sysylogd进程 
(3)在内核代码中使用bsdlog函数添加相关代码,例如

int hello_init(int cmd, struct uio *uio)
{
    bsdlog(LOG_INFO | LOG_KERN, "Enter hello_init::command = 0x%x \n",cmd);

    if (cmd == CFG_INIT)
        bsdlog(LOG_INFO | LOG_KERN, " Initializing Hello World  KernExt \n");
    else if (cmd == CFG_TERM)
        bsdlog(LOG_INFO | LOG_KERN, " Terminating Hello World   KernExt \n");
    else
        bsdlog(LOG_INFO | LOG_KERN, " Unknown command to  Adv  KernExt \n");

return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

内核模块加载,执行了bsdlog部分代码后,查看/tmp/kerninfo.log文件就可以看到内核中bsdlog输出的信息了。例如 
kern:info unix: Enter hello_init::command = 0x1 
kern:info unix: Enter hello_init::command = 0x2 

AIX系统中使用bsdlog函数输出内核信息

标签:

原文地址:http://www.cnblogs.com/gdsf5g46/p/4810576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!