Linux设置sysctl变量

时间:2020-01-09 10:40:42  来源:igfitidea点击:

如何使用命令行选项在Debian/Ubuntu或任何Linux发行版下设置sysctl变量(内核参数)?您需要使用sysctl命令,该命令用于在运行时修改内核参数。可用的参数是/proc/sys /下列出的参数。 Linux中的sysctl支持需要Procfs。 您可以使用sysctl命令读取和写入sysctl变量。

您必须以root用户身份登录才能在Linux操作系统上使用以下任何命令。

显示Linux内核参数

语法为:

# sysctl variable
####################################
### Display all sysctl variables ###
####################################
# sysctl -a
# sysctl -a | more
# sysctl -a | grep 'something'
# sysctl -a | grep memory

输出示例:

vm.memory_failure_early_kill = 0
vm.memory_failure_recovery = 1
vm.overcommit_memory = 0

要查看名为kernel.hostname的内核变量的值,请执行:

# sysctl -n kernel.hostname

如何设置新值?

可以通过以下三种方法为给定的内核参数设置新值:

方法1:通过procfs设置值

您可以使用标准echo命令将数据写入变量(此临时更改):

# echo "value" > /proc/sys/location/variable

方法2:在命令行上临时

要更改sysctl设置时,请将sysctl命令与-w选项一起使用:

sysctl -w variable=value

方法#3:配置文件/etc/sysctl.conf

这是推荐的方式。
首先打开/etc/sysctl.conf文件,执行:

# vi /etc/sysctl.conf

现在增加价值:

variable = value

关闭并保存更改。
执行以下命令以从文件/etc/sysctl.conf文件加载sysctl设置:

# sysctl -p

或者

# sysctl -p /etc/sysctl.conf

最后一种方法将在引导时从/etc/sysctl.conf文件永久加载设置。
阅读sysctl的手册页以获取信息:

$ man sysctl