sysctl 实用程序
sysctl 实用程序还可用于查看或者修改 /proc/sys 目录中可写文件的值。
要查看当前内核设置,请输入:
# sysctl -a abi.vsyscall32 = 1 crypto.fips_enabled = 0 debug.exception-trace = 1 ...
如果单独查看每个文件,则会看到相同的信息,例如:
# cat /proc/sys/abi/vsyscall32 1
echo 命令可用于为 /proc/sys 中的可写文件赋值:
# echo 1 > /proc/sys/net/ipv4/ip_forward
等效的 sysctl 命令紧随其后,立即显示更改的结果:
# sysctl -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1
当系统重新启动时,使用 echo 和 sysctl 所做的更改将丢失。
要保留自定义设置,请将它们添加到 /etc/sysctl.conf 文件中。
每次系统启动时,添加到此文件的值都会生效。
除了 /proc,内核还将信息导出到另一个名为 sysfs 的虚拟文件系统。
sysfs 被 udev 等程序用来访问设备和设备驱动程序信息。
sysfs 的创建有助于清理 proc 文件系统,因为大部分硬件信息已从 proc 移动到 sysfs。
sysfs 文件系统挂载在 /sys 上。
显示了顶级目录。
以下是其中一些目录的简要说明:
/sys/block
该目录包含系统中每个块设备的条目。
符号链接指向物理设备树中设备映射到的物理设备。
例如,sda 磁盘的属性位于以下目录中:
# ls -l /sys/block/sda/ total 0 -r--r--r-- 1 root root 4096 Mar 24 13:03 alignment_offset lrwxrwxrwx 1 root root 0 Mar 24 13:04 bdi -> ../../../../../../../../virtual/bdi/8:0 -r--r--r-- 1 root root 4096 Mar 24 13:03 capability -r--r--r-- 1 root root 4096 Mar 24 13:03 dev lrwxrwxrwx 1 root root 0 Mar 24 13:04 device -> ../../../0:0:0:0 -r--r--r-- 1 root root 4096 Mar 24 13:03 discard_alignment -r--r--r-- 1 root root 4096 Mar 24 13:03 events -r--r--r-- 1 root root 4096 Mar 24 13:03 events_async -rw-r--r-- 1 root root 4096 Mar 24 13:03 events_poll_msecs -r--r--r-- 1 root root 4096 Mar 24 13:03 ext_range drwxr-xr-x 2 root root 0 Mar 24 13:04 holders -r--r--r-- 1 root root 4096 Mar 24 13:03 inflight drwxr-xr-x 2 root root 0 Mar 24 13:04 integrity drwxr-xr-x 2 root root 0 Mar 24 13:04 power drwxr-xr-x 3 root root 0 Mar 24 13:04 queue -r--r--r-- 1 root root 4096 Mar 24 13:03 range -r--r--r-- 1 root root 4096 Mar 24 13:03 removable -r--r--r-- 1 root root 4096 Mar 24 13:03 ro -r--r--r-- 1 root root 4096 Mar 24 13:03 size drwxr-xr-x 2 root root 0 Mar 24 13:04 slaves -r--r--r-- 1 root root 4096 Mar 24 13:03 stat lrwxrwxrwx 1 root root 0 Mar 24 13:04 subsystem -> ../../../../../../../../../class/block -rw-r--r-- 1 root root 4096 Mar 24 13:03 uevent
/sys/bus
该目录包含内核支持的每种物理总线类型的子目录。
每个总线类型都有两个子目录: devices 和 drivers 。
设备目录列出了在该类型总线上发现的设备。
驱动程序目录包含使用总线类型注册的每个设备驱动程序的目录。
可以查看和操作驱动程序参数。
例如,要列出虚拟设备的驱动程序,请输入:
# ls -lR /sys/bus/xen/drivers /sys/bus/xen/drivers: total 0 drwxr-xr-x. 2 root root 0 Mar 24 13:37 vbd drwxr-xr-x. 2 root root 0 Mar 24 13:37 vif /sys/bus/xen/drivers/vbd: total 0 --w-------. 1 root root 4096 Mar 24 13:40 bind lrwxrwxrwx. 1 root root 0 Mar 24 13:40 module -> ../../../../module/xen_blkfront --w-------. 1 root root 4096 Mar 24 13:37 uevent --w-------. 1 root root 4096 Mar 24 13:40 unbind lrwxrwxrwx. 1 root root 0 Mar 24 13:40 vbd-51792 -> ../../../../devices/vbd-51792 lrwxrwxrwx. 1 root root 0 Mar 24 13:40 vbd-768 -> ../../../../devices/vbd-768 /sys/bus/xen/drivers/vif: total 0 --w-------. 1 root root 4096 Mar 24 13:40 bind lrwxrwxrwx. 1 root root 0 Mar 24 13:40 module -> ../../../../module/xen_netfront --w-------. 1 root root 4096 Mar 24 13:37 uevent --w-------. 1 root root 4096 Mar 24 13:40 unbind lrwxrwxrwx. 1 root root 0 Mar 24 13:40 vif-0 -> ../../../../devices/vif-0
/sys/class
该目录包含向内核注册的每个设备类。
设备类描述设备的功能类型。
示例包括输入设备、网络设备和块设备。
/sys/devices
该目录包含系统上所有设备的全局设备层次结构。
该目录还包含一个平台目录和一个系统目录。
平台目录包含特定于特定平台的外围设备,例如设备控制器。
系统目录包含非外围设备,例如 CPU 和 APIC。
/sys/firmware
该目录包含带有固件对象和属性的子目录。
/sys/module
该目录包含加载到内核中的每个模块的子目录,例如:
# ls /sys/module/xen* /sys/module/xen_blkfront: coresize drivers holders initsize initstate notes parameters refcnt rhelversion sections srcversion taint uevent /sys/module/xen_netfront: coresize drivers holders initsize initstate notes parameters refcnt rhelversion sections srcversion taint uevent
/sys/power
可以从此目录控制系统电源状态。
磁盘属性控制系统挂起到磁盘的方法。
state 属性允许进程进入低功耗状态。