sysctl(8) 可用來更改執行中的 FreeBSD 系統,這包含許多 TCP/IP 堆疊及虛擬記憶體系統的進階選項,讓有經驗的系統管理者能夠簡單的提升效能。有超過五百個系統變數可以使用 sysctl(8) 來讀取與設定。
sysctl(8) 主要提供兩個功能:讀取與修改系統設定。
檢視所有可讀取的變數:
%
sysctl -a
要讀取特定變數只要指定其名稱:
%
sysctl kern.maxproc
kern.maxproc: 1044
要設定特定變數可使用 variable
=value
語法:
#
sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000
sysctl 的設定值通常為字串、數字或布林值,其中布林值的 1
代表是,0
代表否。
要在每次機器開機時自動設定一些變數可將其加入到 /etc/sysctl.conf
。要取得更多的資訊請參考 sysctl.conf(5) 及 節 11.9.1, “sysctl.conf
”。
sysctl(8) 的設定檔於 /etc/sysctl.conf
,內容很像 /etc/rc.conf
,設定數值使用 variable=value
格式。指定的數值會在系統進入多使用者模式時設定,但並非所有變數皆可在此模式設定。
例如,要關閉嚴重信號 (Fatal signal) 中止的記錄並避免使用者看到其他使用者所執行的程序,可加入以下設定到 /etc/sysctl.conf
:
# Do not log fatal signal exits (e.g., sig 11)
kern.logsigexit=0
# Prevent users from seeing information about processes that
# are being run under another UID.
security.bsd.see_other_uids=0
在有些情況可能會需要修改唯讀的 sysctl(8) 數值,而這會需要重新啟動系統。
例如,某些筆電型號的 cardbus(4) 裝置無法偵測到記憶體範圍而且會失效並有類似以下的錯誤:
cbb0: Could not map register memory
device_probe_and_attach: cbb0 attach returned 12
這個修正需要修改唯讀的 sysctl(8) 設定。加入 hw.pci.allow_unsupported_io_range=1
到 /boot/loader.conf
然後重新啟動。現在 cardbus(4) 應可正常運作。
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。