名稱
sysctl用於在運行時配置內核參數。
概要
sysctl [-n] [-e] variable …
sysctl [-n] [-e] [-q] -w variable=value …
sysctl [-n] [-e] [-q] -p <filename>
sysctl [-n] [-e] -a
sysctl [-n] [-e] -A
描述
sysctl用於在運行時修改內核參數。可用的參數是 /proc/sys/ 下列出的參數。Linux中的sysctl命令支持需要Procfs 。您可以使用sysctl命令讀取和寫入sysctl數據。
procfs 是proc文件系統的縮寫,包含一個僞文件系統(啓動時動態生成的文件系統),用於通過內核訪問進程信息。這個文件系統通常被掛載到 /proc 目錄。由於 /proc 不是一個真正的文件系統,它也就不佔用存儲空間,只是佔用有限的內存。
參數
- variable 要讀取的鍵值的名稱。示例:
# sysctl kernel.ostype
kernel.ostype = Linux
# sysctl kernel/ostype
kernel.ostype = Linux
‘/’ 分隔符也可以代替 ‘.’ 。
- variable=value 要設置鍵,請使用variable=value的形式,其中variable是鍵,value是待設置的值。如果該值包含Shell解析的引號或字符,則可能需要將該值括在雙引號中。這需要使用 -w 參數。
- -n 打印值時,使用此選項可禁用鍵名的打印。
- -e 使用此選項可忽略有關未知鍵的錯誤。
示例:
# sysctl defhandler_elf
error: "defhandler_elf" is an unknown key
# sysctl -e defhandler_elf
#
- -N 使用此選項僅打印名稱。這對於具有可編程完成功能的shell可能很有用。
# sysctl -N kernel/ostype
kernel.ostype
- -q 使用此選項不顯示設置爲標準輸出的值。
- -w 要更改sysctl設置時,請使用此選項。
- -p 從指定的文件或/etc/sysctl.conf中加載sysctl設置(如果未提供)。將 - 指定爲文件名意味着從標準輸入讀取數據。
- -a 顯示當前可用的所有值。
- -A 與 -a 相同。
示例
/sbin/sysctl -a
/sbin/sysctl -n kernel.hostname
/sbin/sysctl -w kernel.domainname=“example.com”
/sbin/sysctl -p /etc/sysctl.conf
筆記
請注意,在運行sysctl之後加載的模塊可能會覆蓋設置(例如:在加載sunrpc模塊時,將覆蓋sunrpc.*設置)。當sysctl.conf中的設置可能被覆蓋時,這可能會在引導過程中引起一些混亂。爲了避免這種情況,必須在加載特定模塊(例如,從/etc/rc.d/rc.local加載模塊或使用modprobe.conf中的install指令加載模塊)後運行sysctl。
今天好煩啊!過年真麻煩!
參考文檔
https://linux.die.net/man/8/sysctl
https://zh.wikipedia.org/wiki/Procfs
https://linux.die.net/man/5/modprobe.conf