Chinaunix首页 | 论坛 | 博客
  • 博客访问: 86386
  • 博文数量: 42
  • 博客积分: 2630
  • 博客等级: 少校
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-23 11:05
文章分类
文章存档

2011年(1)

2010年(41)

我的朋友

分类: LINUX

2010-08-12 13:44:04

人们常常在 Linux 的 /proc/sys 目录下,手动设定一些 kernel 的参数或是直接 echo
特定的值给一个 proc下的虚拟档案,俾利某些档案之开启,
常见的例如设定开机时自动启动 IP Forwarding:
echo “1” > /proc/sys/net/ipv4/ip_forward
其实,在 Linux 我们还可以用 sysctl command 便可以简易的去检视、设定或自动配置
特定的 kernel 设定。我们可以在系统提示符号下输入sysctl -a
得到当前的 kernel 的设定值.

从上述的语法我们大概可看出 sysctl 的表示法乃把目录结构的「/」以「.」表示,
一层一层的连结下去。当然以echo 特定的值给一个 proc下的虚拟档案也是可以用
sysctl加以表示,例如:
#sysctl –w net.ipv4.ip_forward =”1”

或是直接在 /etc/sysctl.conf 增删修改特定档案的 0,1值亦可:
# Enables packet forwarding
net.ipv4.ip_forward = 1
# Enables source route verification
net.ipv4.conf.default.rp_filter = 1
# Disables the magic-sysrq key
kernel.sysrq = 0
当然如果考虑 reboot 后仍有效, 直接在 /etc/sysctl.conf 增删修改特定档案的 0,1
值才可使之保留设定(以RedHat 为例,每次开机系统启动后, init 会执行 /etc/rc.d/rc.
sysinit,便会使用 /etc/sysctl.conf 的预设值去执行 sysctl)。
相关参考档案:
/sbin/sysctl
/etc/sysctl.conf
sysctl 及sysctl.conf manpage
/usr/src/linux-x.y.z/Documentation/sysctl/*
阅读(304) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~