快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

Sysklogd 系统日志记录器(2)

  klogd -i

  -p 开关也可以用于更新内核符号表。它会让 klogd 在检测到保护性错误的时候重新加载内核符号表。使用这个开关需要小心,因为操作系统在出现保护性错误(protection fault)的时候已经变得不稳定了,而 klogd 必须执行系统调用才能重新装载内核符号表,所以这样做可能会导致更糟糕的结果。

  控制台日志等级

  内核默认的控制台日志等级是"7"(debug),也就是等级数字小于等于6的消息(优先级更高)都会显示在控制台上。这些不同等级所代表的意思位于 kernel.h 文件内,这个包内的 syslog.h 中也有一份拷贝。可以使用 sysctl 来指定控制台日志等级,这通常是在 /etc/sysctl.conf 文件中设置的,比如下面这一行:

  kernel.printk = 4 4 1 7

  就是把内核的控制台日志等级设为了"4"。

  信号处理

  klogd 可以响应8种信号: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2, SIGCONT 。SIGINT, SIGKILL, SIGTERM, SIGHUP 信号会让进程优雅的正常退出。SIGTSTP 信号会让进程停止记录日志并进入休眠状态;SIGCONT 信号会让处于休眠状态的进程重新开始记录日志。组合使用 SIGSTOP 和 SIGCONT 可以在不退出进程的情况下切换日志消息的来源。比如需要卸载 /proc 文件系统的时候,可以使用下面的命令:

  # kill -TSTP pid

  # umount /proc

  # kill -CONT pid

  SIGUSR1 和 SIGUSR2 用于加载/重新加载内核符号表。SIGUSR1 表示重新加载内核模块的符号信息;SIGUSR2 表示同时重新加载模块和静态内核的符号信息。如果 System.map 文件位置正确,那么 SIGUSR1 信号将非常有用。特别是在内核模块改变的时候。

  相关文件

  /proc/kmsg

  klogd 默认首选的获取内核消息的来源

  /var/run/klogd.pid

  保存 klogd 的 PID 的文件

  /boot/System.map, /System.map, /usr/src/linux/System.map

  默认搜索的内核符号表位置

  出处:http://blog.chinaunix.net/u3/110004/showart_2146694.html

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论