设置Linux内核运行时参数的正确方法是什么?

设置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的手册页.

上一篇:linux – sysctl -a从哪里打印所有内核参数?


下一篇:Centos7的常规加固脚本