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

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

时间: 2024-10-15 07:04:16

AIX系统中使用bsdlog函数输出内核信息的相关文章

AIX系统中网卡的查看及配置命令

[导读]AIX系统中网卡的查看及配置命令 在AIX中,网卡是用ent开头来表示的,一个网卡在系统中实际上可以看到两个设备接口,en开头的是Ethernet II标准的,et开头的是IEEE 802.3标准的.以太网的帧有两种标准:Ethernet II(或者叫Standard Ethernet)和IEEE802.3,两者主要是标志帧的上层协议 AIX系统中网卡的查看及配置命令 在AIX中,网卡是用ent开头来表示的,一个网卡在系统中实际上可以看到两个设备接口,en开头的是Ethernet II标

AIX系统中如何查看HBA卡的WWPN和微码版本

1 得到HBA卡的安装信息 [email protected]:/home/hjl>lsdev -Cc adapter ent0      Available 00-08 2-Port 10/100/1000 Base-TX PCI-X Adapter (14108902) ent1      Available 00-09 2-Port 10/100/1000 Base-TX PCI-X Adapter (14108902) ent2      Defined   09-08 2-Port 1

在iOS系统中使用fopen函数

这些天在应用中用到openssl编解码的时候遇到用fopen打开文件拿不到FILE的情况,造成crash,最后得到解决,以下是记录: 因为应用底层有部分代码是C编写的,在这里要打开一个文件来读取数据,一开始在Objective-C中创建文件的时候是用的NSURL,传到C代码中的时候使用[[url absoluteString] UTF8String],在fopen的时候拿到的fd是-1,没有打开文件. 追踪代码的时候发现,NSURL指向的文件路径是 file:///xxxx 这样的格式,但如果是

CentOS 6.4系统中编译和升级内核

CentOS 6.4系统中编译和升级内核 [日期:2013-08-25] 来源:Linux社区  作者:vipshichg [字体:大 中 小] 可能因为以下几种原因,你可能需要对Linux kernel内核进行升级操作. 想要尝试一个新的内核模块 设备驱动需要新的内核功能模块支持 旧版本的内核有新的漏洞被发现 系统经常容易崩溃 不管因为什么原因,每一个Linux用户对Linux内核进行升级,是一个很重要的维系统护工作. 下面我们来学习在CentOS 6.4系统下,将Linux kernel 2

AIX系统maxperm与maxperm%的关系分析

AIX系统中maxperm相关的参数有两个(不包括strict_maxperm),分别是maxperm和maxperm%,用vmo –a命令时,只能查到maxperm参数的值,却查不到maxperm%的值,只有用vmo -Fa才能同时查到maxperm和maxperm%两个参数的值,这两个参数,是存在关联关系的. 1.  先看看系统的总物理内存大小 # bootinfo -r 261619712 2.  比较vmo –a与vmo –Fa命令输出值的区别 (1)#vmo –a |grep maxp

Octopus系列之系统中的价格

系统中的价格 产品原价格  计算=Round(数据库数值[默认USD]*汇率)[Round的意思说:对价格做小数位的截取]产品原价格  展示=Currency(产品原价格  计算)[给大家说明一下什么意思:Currency代码我系统中的一个函数,用来对价格格式化显示处理] 产品售价 计算=Round(数据库数值[默认USD]*汇率*打折率)产品售价 展示=Currency(产品售价 计算) 单个产品节省价格 计算 Round(原价--售价) 单个产品节省价格 展示 Currency(单个产品节省

重新启动SNMP服务解决监控AIX系统问题

今早发现无法使用PRTG监控AIX系统平台,出现大量红色报警信息,我们通过SNMP协议抓取大量系统有关数据进行实时监控,及早发现问题及早解决.我们把原有PRTG监控AIX系统探针及传感器清除,且重新添加这些信息问题依旧.然后我们依照配置SNMP协议流程,重新过一遍AIX系统添加SNMP服务过程. SNMP简单网络管理协议,通过该协议可以管理各种不同厂家的软硬件产品,常常用于对设备状态的监控,可以说是网管软件中最常用的服务之一. 一.配置AIX下SNMP代理程序 1. 确定当前运行的SNMP版本

【ASP.NET】 中 system.math 函数使用

1 /* 字段 */ 2 Math.E; //2.71828182845905 3 Math.PI; //3.14159265358979 4 5 /* 静态方法 */ 6 Math.Abs; //绝对值 7 Math.Acos; //反余弦 8 Math.Asin; //反正弦 9 Math.Atan; //反正切 10 Math.Atan2; //反正切, 两参数 11 Math.BigMul; //int32 * int32 = int64 12 Math.Ceiling; //取 >=

C语言使用宏输出调试信息实战

如何使用宏定义输出信息 C语言提供了#, ##, __VA_ARGS__等符号来帮助我们在宏定义中更好地输出信息.使用方式如下: 输出如下: #的作用是,它会在所引用的宏变量左右两边加一对引号.所以FUN1中的printf函数不会出错,因为FUN1(hello)预编译时被替换成了printf("hello\n") ##的作用是,把两个宏变量连接成一个,FUN2(1, 2)预编译时被替换成了printf("The num is %d\n", 12) 支持c99标准的编