systemd-sysctl
/systemd-sysctl.service负责在系统启动时配置内核参数。
概述
systemd-sysctl.service 服务 在系统启动的早期 通过调用 /usr/lib/systemd/systemd-sysctl 工具配置 sysctl(8) 内核参数。
如果不使用任何参数调用 /usr/lib/systemd/systemd-sysctl 命令, 那么将应用 sysctl.d(5) 目录下(/etc/sysctl.d/*.conf、/run/sysctl.d/*.conf、/usr/lib/sysctl.d/*.conf)所有配置文件中的指令。如果明确指定了一个或多个文件名, 那么将仅应用指定的配置文件中的指令。配置文件格式如下:
# 使用.和/是一样的,都会将 "example.com" 写入 /proc/sys/kernel/domainname
kernel.domainname=example.com
kernel/domainname=example.com
# /proc/sys/net/ipv4/conf/enp3s0.200/forwarding
net/ipv4/conf/enp3s0.200/forwarding=1
sysctl
sysctl 可以在运行时配置内核参数。所有可用参数都位于 /proc/sys/ 目录下。
SYSTEM FILE优先级
当使用--system参数的时候,sysctl会按照以下顺序读取系统文件,一旦一个给定文件名的文件被加载后续目录中的相同名称将被忽略
/etc/sysctl.d/*.conf
/run/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
示例用法
# 显示所有参数
/sbin/sysctl -a
# 显示特定参数
/sbin/sysctl -n kernel.hostname
# 设置参数
/sbin/sysctl -w kernel.domainname="example.com"
# 根据文件设置参数
/sbin/sysctl -p /etc/sysctl.conf
# 正则匹配显示参数
/sbin/sysctl -a --pattern forward$
/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'
# --system 载入所有配置
/sbin/sysctl --pattern '^net.ipv6' --system
用例
生效所有sysctl配置
systemctl restart systemd-sysctl
查看特定的设置
sysctl kernel.core_pattern
应用特定的sysctl配置
仅应用名为
50-coredump.conf的配置文件中的所有指令。 也就是从/etc/sysctl.d/50-coredump.conf或/run/sysctl.d/50-coredump.conf或/usr/lib/sysctl.d/50-coredump.conf中, 以第一个找到的为准。
/usr/lib/systemd/systemd-sysctl 50-coredump.conf