我想在正在运行的内核中编辑proc文件/ proc / sys / net / ipv6 / route / gc_interval的值。我想编辑此proc文件值相对于另一个值的值。
根据文件net / ipv6 / ndisc.c中函数ndisc_router_discovery的生命周期值,我想在1到30之间切换gc_intervel的值。我在谷歌搜索但我发现只能创建一个新的proc条目。但是这个文件已经存在。请告诉我如何在飞行中更改此文件的值。
编辑: 我想通过编辑内核代码来做到这一点。我想在ndisc.c中添加一些额外的代码,根据生命周期更改gc_interval值
答案 0 :(得分:2)
proc条目sys/net/ipv6/route/gc_interval
在net/ipv6/route.c
中定义:
{
.procname = "gc_interval",
.data = &init_net.ipv6.sysctl.ip6_rt_gc_interval,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_jiffies,
}
因此gc_interval
文件是整数变量init_net.ipv6.sysctl.ip6_rt_gc_interval
的用户域表示,具有jiffies-to-seconds转换(变量存储在jiffies中,而proc条目以秒为单位处理值) )
如果需要以编程方式更改内核中的值,则只需更改该变量:
...
init_net.ipv6.sysctl.ip6_rt_gc_interval = new_gc_interval_sec * HZ;
...
注意:
<net/net_namespace.h>
以访问 init_net
结构 答案 1 :(得分:0)
使用sysctl命令sudo sysctl -w net.ipv6.route.gc_interval=20
如果您想将此值永久追加net.ipv6.route.gc_interval=20
到/etc/sysctl.conf
档
答案 2 :(得分:0)
或者只是:
echo 20 > /proc/sys/net/ipv6/route/gc_interval
/etc/sysctl.conf允许在系统启动时执行此操作。