xref: /freebsd/usr.sbin/sysconf/sysconf-sysctl.8 (revision b4a465e566a1850e232b454efe99e05c1ea93f67)
1*3fe5961aSDevin Teske.\" Copyright (c) 2013-2026 Devin Teske <dteske@FreeBSD.org>
2*3fe5961aSDevin Teske.\" Copyright (c) 2021-2026 Faraz Vahedi <kfv@FreeBSD.org>
3*3fe5961aSDevin Teske.\"
4*3fe5961aSDevin Teske.\" SPDX-License-Identifier: BSD-2-Clause
5*3fe5961aSDevin Teske.\"
6*3fe5961aSDevin Teske.Dd August 2, 2026
7*3fe5961aSDevin Teske.Dt SYSCONF-SYSCTL 8
8*3fe5961aSDevin Teske.Os
9*3fe5961aSDevin Teske.Sh NAME
10*3fe5961aSDevin Teske.Nm "sysconf sysctl"
11*3fe5961aSDevin Teske.Nd configure boot-time sysctl.conf directives
12*3fe5961aSDevin Teske.Sh SYNOPSIS
13*3fe5961aSDevin Teske.Nm sysconf
14*3fe5961aSDevin Teske.Cm sysctl
15*3fe5961aSDevin Teske.Op Fl AcDeFinNqvVx
16*3fe5961aSDevin Teske.Op Fl j Ar jail | Fl R Ar dir
17*3fe5961aSDevin Teske.Op Fl f Ar file | Fl k Ar module
18*3fe5961aSDevin Teske.Ar name Ns Op Ns Oo +|- Oc Ns = Ns Ar value
19*3fe5961aSDevin Teske.Ar ...
20*3fe5961aSDevin Teske.Nm sysconf
21*3fe5961aSDevin Teske.Cm sysctl
22*3fe5961aSDevin Teske.Op Fl ADeFnNqvV
23*3fe5961aSDevin Teske.Op Fl f Ar file | Fl k Ar module
24*3fe5961aSDevin Teske.Fl a
25*3fe5961aSDevin Teske.Nm sysconf
26*3fe5961aSDevin Teske.Cm sysctl
27*3fe5961aSDevin Teske.Op Fl AaDinNq
28*3fe5961aSDevin Teske.Fl d
29*3fe5961aSDevin Teske.Op Ar name ...
30*3fe5961aSDevin Teske.Nm sysconf
31*3fe5961aSDevin Teske.Cm sysctl
32*3fe5961aSDevin Teske.Op Fl E
33*3fe5961aSDevin Teske.Op Fl k Ar module
34*3fe5961aSDevin Teske.Fl l | L
35*3fe5961aSDevin Teske.Sh DESCRIPTION
36*3fe5961aSDevin TeskeThe
37*3fe5961aSDevin Teske.Cm sysctl
38*3fe5961aSDevin Tesketarget of
39*3fe5961aSDevin Teske.Xr sysconf 8
40*3fe5961aSDevin Teskereads and modifies
41*3fe5961aSDevin Teske.Xr sysctl.conf 5
42*3fe5961aSDevin Teskeconfiguration.
43*3fe5961aSDevin TeskeShared assignment syntax and options are documented in
44*3fe5961aSDevin Teske.Xr sysconf 8 ;
45*3fe5961aSDevin Teskemulti-file write policy in
46*3fe5961aSDevin Teske.Xr sysconf-targets 8 .
47*3fe5961aSDevin Teske.Pp
48*3fe5961aSDevin TeskeThe stock file list is
49*3fe5961aSDevin Teske.Pa /etc/sysctl.conf ,
50*3fe5961aSDevin Teske.Pa /etc/sysctl.conf.local ,
51*3fe5961aSDevin Teskethen
52*3fe5961aSDevin Teske.Pa /etc/sysctl.kld.d/ Ns Ar module Ns Pa .conf
53*3fe5961aSDevin Teskewhen
54*3fe5961aSDevin Teske.Fl k Ar module
55*3fe5961aSDevin Teskeis given
56*3fe5961aSDevin Teske.Pq applied by Xr rc.subr 8 when the module loads .
57*3fe5961aSDevin Teske.Pp
58*3fe5961aSDevin TeskeValues are quoted on write only when the value requires it
59*3fe5961aSDevin Teske.Pq embedded whitespace .
60*3fe5961aSDevin Teske.Pp
61*3fe5961aSDevin TeskeWhen writing to the running system,
62*3fe5961aSDevin Teskeeach
63*3fe5961aSDevin Teske.Ar name Ns = Ns Ar value
64*3fe5961aSDevin Teskeis validated against the kernel's sysctl tree first.
65*3fe5961aSDevin TeskeAn OID that cannot be set at run time
66*3fe5961aSDevin Teske.Pq non-leaf, read-only, or loader-only tunable
67*3fe5961aSDevin Teskeis reported and skipped,
68*3fe5961aSDevin Teskewhile the remaining assignments are still applied.
69*3fe5961aSDevin TeskeIn particular,
70*3fe5961aSDevin Teskea loader-only tunable is reported as requiring the
71*3fe5961aSDevin Teske.Cm loader
72*3fe5961aSDevin Tesketarget instead
73*3fe5961aSDevin Teske.Pq see Xr sysconf-loader 8 .
74*3fe5961aSDevin TeskeNumeric values are also checked against the OID's
75*3fe5961aSDevin Teske.Dv CTLTYPE
76*3fe5961aSDevin Teske.Po
77*3fe5961aSDevin Teske.Dv CTLTYPE_INT ,
78*3fe5961aSDevin Teske.Dv CTLTYPE_U64 ,
79*3fe5961aSDevin Teskeand the other integer widths
80*3fe5961aSDevin Teske.Pc
81*3fe5961aSDevin Teskeso an overflowing or non-numeric assignment cannot land in
82*3fe5961aSDevin Teske.Xr sysctl.conf 5
83*3fe5961aSDevin Teskeand fail
84*3fe5961aSDevin Teske.Pq or apply truncated
85*3fe5961aSDevin Teskewhen
86*3fe5961aSDevin Teske.Xr sysctl 8
87*3fe5961aSDevin Teskeloads the file at boot.
88*3fe5961aSDevin Teske.Pp
89*3fe5961aSDevin TeskeAn unknown OID
90*3fe5961aSDevin Teske.Pq often from a module that is not yet loaded
91*3fe5961aSDevin Teskeis reported with a warning but still written,
92*3fe5961aSDevin Teskematching how
93*3fe5961aSDevin Teske.Xr init 8
94*3fe5961aSDevin Tesketreats such lines in
95*3fe5961aSDevin Teske.Xr sysctl.conf 5 ;
96*3fe5961aSDevin Teske.Fl i
97*3fe5961aSDevin Teskeand
98*3fe5961aSDevin Teske.Fl q
99*3fe5961aSDevin Teskesuppress that warning.
100*3fe5961aSDevin TeskeValidation is skipped entirely under
101*3fe5961aSDevin Teske.Fl R ,
102*3fe5961aSDevin Teskewhere the target system's kernel is not the running kernel.
103*3fe5961aSDevin Teske.Pp
104*3fe5961aSDevin Teske.Fl d
105*3fe5961aSDevin Teskedescriptions for this target come from the running kernel
106*3fe5961aSDevin Teske.Pq as with Xr sysctl 8 Fl d ,
107*3fe5961aSDevin Teskenot from a defaults file.
108*3fe5961aSDevin Teske.Sh FILES
109*3fe5961aSDevin Teske.Bl -tag -width "/etc/sysctl.conf.local" -compact
110*3fe5961aSDevin Teske.It Pa /etc/sysctl.conf
111*3fe5961aSDevin TeskeWrite target for new directives.
112*3fe5961aSDevin Teske.It Pa /etc/sysctl.conf.local
113*3fe5961aSDevin TeskeSite-local overrides.
114*3fe5961aSDevin Teske.It Pa /etc/sysctl.kld.d/
115*3fe5961aSDevin TeskeModule-specific drop-ins
116*3fe5961aSDevin Teske.Pq see Fl k .
117*3fe5961aSDevin Teske.El
118*3fe5961aSDevin Teske.Sh EXAMPLES
119*3fe5961aSDevin Teske.Dl sysconf sysctl kern.maxfiles=65536
120*3fe5961aSDevin Teske.Dl sysconf sysctl -F vfs.usermount
121*3fe5961aSDevin Teske.Dl sysconf sysctl -d kern.maxfiles
122*3fe5961aSDevin Teske.Dl sysconf sysctl -L
123*3fe5961aSDevin Teske.Dl sysconf sysctl -LE
124*3fe5961aSDevin Teske.Dl sysconf sysctl -k ipfw net.inet.ip.fw.verbose=1
125*3fe5961aSDevin Teske.Dl sysconf -x sysctl vfs.usermount
126*3fe5961aSDevin Teske.Dl sysconf -j www sysctl kern.ipc.somaxconn=1024
127*3fe5961aSDevin Teske.Pp
128*3fe5961aSDevin TeskeAn overflowing assignment is refused before the file is touched
129*3fe5961aSDevin Teske.Pq here an integer OID given a value beyond INT_MAX :
130*3fe5961aSDevin Teske.Pp
131*3fe5961aSDevin Teske.Dl sysconf sysctl security.bsd.see_other_uids=99999999999
132*3fe5961aSDevin Teske.Sh SEE ALSO
133*3fe5961aSDevin Teske.Xr sysctl.conf 5 ,
134*3fe5961aSDevin Teske.Xr sysconf 8 ,
135*3fe5961aSDevin Teske.Xr sysconf-loader 8 ,
136*3fe5961aSDevin Teske.Xr sysconf-targets 8 ,
137*3fe5961aSDevin Teske.Xr sysctl 8
138*3fe5961aSDevin Teske.Sh HISTORY
139*3fe5961aSDevin TeskeThe
140*3fe5961aSDevin Teske.Nm sysconf
141*3fe5961aSDevin Teskeutility first appeared in
142*3fe5961aSDevin Teske.Fx 16.0 .
143*3fe5961aSDevin Teske.Sh AUTHORS
144*3fe5961aSDevin Teske.An Devin Teske Aq Mt dteske@FreeBSD.org
145*3fe5961aSDevin Teske.An Faraz Vahedi Aq Mt kfv@FreeBSD.org
146