A sysctl(8) egy olyan felület, amely lehetőséget biztosít egy működő FreeBSD rendszer megváltoztatására. Segítségével többek közt hozzáférhetünk a TCP/IP protokollkészlet és a virtuális memóriát kezelő alrendszer rengeteg apró opciójához, melyek megfelelő beállításával egy tapasztalt rendszergazda kezében drasztikusan növelhető a rendszer teljesítménye. A sysctl(8) alkalmazásával több mint ötszáz rendszerszintű változó kérdezhető le és állítható be.
A sysctl(8) két funkciót rejt magában: a rendszer beállításainak lekérdezését és módosítását.
Így nézhetjük meg az összes lekérdezhetó változót:
% sysctl -a
Így kérhetjük egy konkrét
változó, például a
kern.maxproc
értékét:
% sysctl kern.maxproc kern.maxproc: 1044
Egy adott változó értékének módosításához pedig használjuk a változó=érték felírást:
# sysctl kern.maxfiles=5000 kern.maxfiles: 2088 -> 5000
A sysctl változók értékei lehetnek karakterláncok, számok és logikai értékek (ahol az 1 az igennek, a 0 a nemnek felel meg).
Ha a számítógép indításakor automatikusan be akarunk állítani bizonyos változókat, akkor vegyük fel ezeket az /etc/sysctl.conf állományba. Ennek pontosabb részleteit a sysctl.conf(5) man oldalon és a 11.10.4 Szakaszban találhatjuk meg.
Egyes esetekben szükséges lehet a sysctl(8) írásvédett változóinak módosítása. Habár gyakran elengedhetetlen, ezt kizárólag csak a rendszer (újra)indításakor tudjuk megtenni.
Például egyes laptopoknál a cardbus(4) eszköz nem próbálkozik több memóriaterület használatával, ezért egy ehhez hasonló hibával leáll:
cbb0: Could not map register memory device_probe_and_attach: cbb0 attach returned 12
Az ilyen és ehhez hasonló esetekben gyakran olyan sysctl(8) változók alapértelmezett értékeit kellene megváltoztatnunk, amelyek írásvédettek. Ilyenkor tegyük az érintett sysctl(8) változó “objektumazonosítóját” (OID) és a hozzátartozó értéket a /boot/loader.conf állományunkba. Az alapértelmezéseket a /boot/defaults/loader.conf állományban találjuk meg.
A fentebb tárgyalt probléma
megoldásához a felhasználónak a
hw.pci.allow_unsupported_io_range=1
értéket kell beállítania az előbb
említett állományban. Ezután
már a cardbus(4) megfelelően fog
működni.
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
kérjük erre a címre írjon: <gabor@FreeBSD.org>.