设置Linux内核运行时参数的规定方法是什么?我有时会看到人们会在/etc/rc.local这样的文件中设置它们.
这真的是正确的方法吗?
解决方法:
您可以使用sysctl设置一些内核参数,特别是/ proc / sys下的参数.这些可以在文件/etc/sysctl.conf中设置,也可以在/etc/sysctl.d目录中添加到单个文件(某些发行版的首选方法,如Fedora)中.在有这个目录的发行版上,它是用于定制的.
摘自sysctl的手册页
sysctl - configure kernel parameters at runtime
例
您可以使用此命令获取当前设置的内核参数的部分列表:
$sudo sysctl -a | head -5
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
dev.cdrom.autoclose = 1
dev.cdrom.autoeject = 0
做出改变
/etc/sysctl.conf中
只需将规则添加到sysctl.conf文件即可.
# sysctl.conf sample
#
kernel.domainname = example.com
; this one has a space which will be written to the sysctl!
kernel.modprobe = /sbin/mod probe
您还可以使用sysctl.conf命令行对此文件进行编辑,而无需直接编辑它.
$sysctl -w kernel.domainname="example.com"
进行任何更改后,请确保它们处于活动状态.
$sysctl -p
/etc/sysctl.d
要添加此参数的覆盖,只需将其放在一个文件中,该文件的名称与/etc/sysctl.d目录中已存在的文件类似.
$ls -l /etc/sysctl.d
total 40
-rw-r--r-- 1 root root 77 Jul 16 2012 10-console-messages.conf
-rw-r--r-- 1 root root 490 Jul 16 2012 10-ipv6-privacy.conf
-rw-r--r-- 1 root root 726 Jul 16 2012 10-kernel-hardening.conf
-rw-r--r-- 1 root root 1184 Jul 16 2012 10-magic-sysrq.conf
-rw-r--r-- 1 root root 509 Jul 16 2012 10-network-security.conf
...
在一个名为99-myparam.conf的文件中.
$more 10-console-messages.conf
# the following stops low-level messages on console
kernel.printk = 4 4 1 7
参数名称在左侧,相应的值在右侧.
有关更多详细信息,请参见sysctl的手册页.