红联首页 凝聚Linux人的力量
菜鸟过关 | 精华文档 | 同城人(交友) | 我与Linux的故事 | Linux新闻 | Linux视频 | Linux人才 | 软件下载 | 大学校园 | English
发新话题
打印

Debian中Firestarter日志问题的解决

Debian中Firestarter日志问题的解决

1、问题描述:

开启Firestarter后Console不断刷出如下内容:

Mar 27 21:25:25 debian kernel: ABORTED IN=wlan0 OUT=
MAC=00:0f:66:a1:89:28:00:12:17:27:5b:71:08:00 SRC=167.104.0.82
DST=192.168.1.103 LEN=40 TOS=0x00 PREC=0x20 TTL=48 ID=34256 PROTO=TCP SPT=443

2、问题原因:

printk的loglevel

3、相关资料:

printk有8个loglevel,定义在中,其中数值范围从0到7,数值越小,优先级越高。
引用:
#define    KERN_EMERG      "<0>"      /* system is unusable     */ 系统崩溃
#define    KERN_ALERT       "<1>"/* action must be taken immediately*/必须紧急处理
#define    KERN_CRIT  "<2>"      /* critical conditions      */ 临界条件,严重的硬软件错误
#define    KERN_ERR    "<3>"      /* error conditions  */ 报告错误
#define    KERN_WARNING "<4>"      /* warning conditions           */警告
#define    KERN_NOTICE     "<5>"      /* normal but significant condition */普通但还是须注意
#define    KERN_INFO  "<6>"      /* informational                    */ 信息
#define    KERN_DEBUG      "<7>"      /* debug-level messages               */ 调试信息
未指定优先级的默认级别定义在/kernel/printk.c中:
引用:
/* printk's without a loglevel use this.. */
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING */
/* We show everything that is MORE important than this.. */   
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */
// 下面就是本文问题的始作俑者
#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */   

int console_printk[4] = {        
    DEFAULT_CONSOLE_LOGLEVEL,   /* console_loglevel */ 终端级别
    DEFAULT_MESSAGE_LOGLEVEL,   /* default_message_loglevel */默认级别
    MINIMUM_CONSOLE_LOGLEVEL,  /* minimum_console_loglevel */让用户使用的最小级别
    DEFAULT_CONSOLE_LOGLEVEL,   /* default_console_loglevel */默认终端级别
};
当优先级的值小于console_loglevel这个整数变量的值,信息就在Console显示出来。

而console_loglevel的初始值DEFAULT_CONSOLE_LOGLEVEL也定义在/kernel/printk.c中:  

$cat /proc/sys/kernel/printk
7    4    1    7        

4、问题解决

这个默认值可以在sysctl.conf中设定,系统启动时就把sysctl.conf中的值写到/proc/sys/kernel/printk。

去掉sysctl.conf中“kernel.printk = 4    4    1    7”的注释。

再使用下面的命令修改其值 ,避免重启系统
#echo 4 > /proc/sys/kernel/printk
#cat /proc/sys/kernel/printk
4    4    1    7

TOP

发新话题