Chinaunix首页 | 论坛 | 博客
  • 博客访问: 361503
  • 博文数量: 42
  • 博客积分: 3970
  • 博客等级: 中校
  • 技术积分: 714
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-13 15:31
文章分类

全部博文(42)

文章存档

2009年(19)

2008年(23)

我的朋友

分类: BSD

2008-06-20 10:12:50

  核心中许多参数的值都是根据核心设定档中的设定值而来的,在您编译好核心之后,它们就都已经静态的定义在核心中。如果您想更新核心中某个参数值,您不 一定要重新编译核心,您可以透过 /boot/loader.conf 设定档或 /etc/sysctl.conf 设定文件或 /usr/sbin/sysctl 指令来变更,设定文件与指令的差别在于设定文件模式于开机后依然适用,指令模式则仅限于本次开机,重新开机后便回复核心中的设定值,若要变更需再重新设定 过。

  关于 /boot/loader.conf 的部份,我们就不再多谈了。

  /etc/sysctl.conf 是在系统要进入『多人模式』前读取的,它的设定格式是「类别.名称=设定值」,如┱

  kern.maxfiles=1064

  hw.bt848.tuner=9

  sysctl -a 指令会显示出所有的核心参数,如┱

   shell# sysctl -akern.ostype: FreeBSDkern.osrelease: 4.5-RELEASE-p19kern.osrevision: 199506kern.version: FreeBSD 4.6.2-RELEASE #13: Sat Sep 7 06:29:59 CST 2002 pankow@uah.weonfu.net:/usr/obj/usr/src/sys/WEONkern.maxvnodes: 4428kern.maxproc: 532kern.maxfiles: 1064kern.argmax: 65536-- 省略 --p1003_1b.mq_open_max: 0p1003_1b.pagesize: 4096p1003_1b.rtsig_max: 0p1003_1b.sem_nsems_max: 0p1003_1b.sem_value_max: 0p1003_1b.sigqueue_max: 0p1003_1b.timer_max: 0jail.set_hostname_allowed: 1jail.socket_unixiproute_only: 1jail.sysvipc_allowed: 0shell #

  内容满长的,您可以利用 shell# sysctl -a | more 指令来分页观看。

  sysctl <参数名称> 则仅显示该参数的名称与数值,如┱

  shell# sysctl kern.maxfileskern.maxfiles: 1064shell#

  如果您写的 shell scripts 有需要读取核心的参数值,您可以利用

  sysctl -n <参数名称> 或 sysctl -N <参数名称> 指令,两者的差别如下┱

  shell# sysctl -n kern.maxfiles1064shell#shell# sysctl -N kern.maxfileskern.maxfilesshell#

  不知您有体会出什么了吗 ^_^

  sysctl <参数名称>=<设定值> 这个指令可以让您线上修改核心参数的设定值,如┱

   shell# sysctl kern.hostnamekern.hostname: uah.weonfu.netshell# sysctl kern.hostname= uah.weonfu.net -> shell# sysctl kern.maxprockern.maxproc: 532shell# sysctl kern.maxproc=1000sysctl: oid 'kern.maxproc' is read onlyshell#

  如果您的版本是比较旧版的,如 FreeBSD 3.x 您可能会需要加个 -w 的参数;有些核心参数是可以变更的,但有些则不行,您可以 shell# man sysctl 来查看更详细的指令参数以及可变更的参数名称。

  注意┱随意变更核心参数是很容易造成系统当机的,请特别小心使用!!
阅读(1115) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~