Chen Li Asked: 2019-09-16 18:11:12 +0800 CST2019-09-16 18:11:12 +0800 CST 2019-09-16 18:11:12 +0800 CST sysctl -a 不包括 log_buf_len 772 我希望通过sysctl检查log_buf_len的值,但sysctl -a没有显示,为什么以及有没有其他方法可以检查它的值 kernel 1 个回答 Voted Best Answer NickD 2019-09-17T00:11:18+08:002019-09-17T00:11:18+08:00 的值在配置和构建内核时或在使用参数引导时log_buf_len一劳永逸地设置:之后您将无法更改它。通常关注您可以在正在运行的内核中更改的内容:这可能是不包括在内的原因。log_buf_len=NNNsysctllog_buf_len 您可以通过 grepping 内核配置文件找到配置的值LOG_BUF_SHIFT(假设它可用)。例如,在我的 Fedora 29 系统上,我做 $ grep CONFIG_LOG_BUF_SHIFT /boot/config-5.2.11-100.fc29.x86_64 CONFIG_LOG_BUF_SHIFT=18 log_buf_len等于 2^18 然后除非它是通过引导命令行设置的。 如果是这种情况(或者如果您无权访问配置文件),那么我知道的唯一方法就是gdb检查正在运行的内核,但我已经很多年没有这样做了,我真的可以'不记得所有步骤 - 主要困难是为您正在运行的内核获取调试符号。其他人将不得不提供这些指令(或者可能提供更简单的方法;例如,可以编写一个内核模块,在加载时打印出值 - 有很多关于编写简单内核模块的教程,例如这里:教程可以追溯到 2.6 内核的时代,今天的情况可能有所不同,但我(天真地?)不希望事情有很大不同)。
的值在配置和构建内核时或在使用参数引导时
log_buf_len
一劳永逸地设置:之后您将无法更改它。通常关注您可以在正在运行的内核中更改的内容:这可能是不包括在内的原因。log_buf_len=NNN
sysctl
log_buf_len
您可以通过 grepping 内核配置文件找到配置的值
LOG_BUF_SHIFT
(假设它可用)。例如,在我的 Fedora 29 系统上,我做log_buf_len
等于 2^18 然后除非它是通过引导命令行设置的。如果是这种情况(或者如果您无权访问配置文件),那么我知道的唯一方法就是
gdb
检查正在运行的内核,但我已经很多年没有这样做了,我真的可以'不记得所有步骤 - 主要困难是为您正在运行的内核获取调试符号。其他人将不得不提供这些指令(或者可能提供更简单的方法;例如,可以编写一个内核模块,在加载时打印出值 - 有很多关于编写简单内核模块的教程,例如这里:教程可以追溯到 2.6 内核的时代,今天的情况可能有所不同,但我(天真地?)不希望事情有很大不同)。