xref: /freebsd/sbin/sysctl/sysctl.8 (revision 5069714534cba67f1985e6dfe23b145178372b5f)
1.\" Copyright (c) 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. All advertising materials mentioning features or use of this software
13.\"    must display the following acknowledgement:
14.\"	This product includes software developed by the University of
15.\"	California, Berkeley and its contributors.
16.\" 4. Neither the name of the University nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\"	From: @(#)sysctl.8	8.1 (Berkeley) 6/6/93
33.\" $FreeBSD$
34.\"
35.Dd September 23, 1994
36.Dt SYSCTL 8
37.Os
38.Sh NAME
39.Nm sysctl
40.Nd get or set kernel state
41.Sh SYNOPSIS
42.Nm
43.Op Fl bNn
44.Ar name ...
45.Nm
46.Op Fl bNn
47.Fl w
48.Ar name=value ...
49.Nm
50.Op Fl bNn
51.Fl aAX
52.Sh DESCRIPTION
53The
54.Nm
55utility retrieves kernel state and allows processes with
56appropriate privilege to set kernel state.
57The state to be retrieved or set is described using a
58``Management Information Base'' (``MIB'') style name,
59described as a dotted set of components.
60.Pp
61The following options are available:
62.Bl -tag -width indent
63.It Fl a
64List all the currently available string or integer values.
65.It Fl A
66List all the known MIB names including opaques.
67Those with string or integer values will be printed as with the
68.Fl a
69flag; for the opaque values,
70information about the format and the length is printed in addition the first
71few bytes is dumped in hex.
72.It Fl X
73Same as
74.Fl A
75except the entire value of opaque variables is hexdumped.
76.It Fl N
77Show only variable names, not their values.
78.It Fl n
79Specify that the printing of the field name should be
80suppressed and that only its value should be output.
81This flag is useful for setting shell variables.
82For example, to save the pagesize in variable psize, use:
83.Bd -literal -offset indent -compact
84set psize=`sysctl -n hw.pagesize`
85.Ed
86.It Fl b
87Force the value of the variable(s) to be output in raw, binary
88format.  No names are printed and no terminating newlines are output.
89This is mostly useful with a single variable.
90.It Fl w Ar name=value ...
91Set the MIB
92.Ar name
93to the new
94.Ar value .
95If just a MIB style
96.Ar name
97is given,
98the corresponding value is retrieved.
99.El
100.Pp
101The information available from
102.Nm
103consists of integers, strings, and opaques.
104.Nm Sysctl
105only knows about a couple of opaque types, and will resort to hexdumps
106for the rest.
107The opaque information is much more useful if retrieved by special
108purpose programs such as
109.Nm ps ,
110.Nm systat ,
111and
112.Nm netstat .
113.Pp
114The string and integer information is summarized below.
115For a detailed description of these variable see
116.Xr sysctl 3 .
117.Pp
118The changeable column indicates whether a process with appropriate
119privilege can change the value.
120.Bl -column net.inet.ip.forwardingxxxxxx integerxxx
121.It Sy "Name	Type	Changeable
122.It "kern.ostype	string	no
123.It "kern.osrelease	string	no
124.It "kern.osrevision	integer	no
125.It "kern.version	string	no
126.It "kern.maxvnodes	integer	yes
127.It "kern.maxproc	integer	no
128.It "kern.maxprocperuid	integer	yes
129.It "kern.maxfiles	integer	yes
130.It "kern.maxfilesperproc	integer	yes
131.It "kern.argmax	integer	no
132.It "kern.suser_permitted	integer	yes
133.It "kern.securelevel	integer	raise only
134.It "kern.hostname	string	yes
135.It "kern.hostid	integer	yes
136.It "kern.clockrate	struct	no
137.It "kern.posix1version	integer	no
138.It "kern.ngroups	integer	no
139.It "kern.job_control	integer	no
140.It "kern.saved_ids	integer	no
141.It "kern.boottime	struct	no
142.It "kern.domainname	string	yes
143.It "kern.filedelay	integer	yes
144.It "kern.dirdelay	integer	yes
145.It "kern.metadelay	integer	yes
146.It "kern.osreldate	string	no
147.It "kern.bootfile	string	yes
148.It "kern.corefile	string	yes
149.It "kern.logsigexit	integer	yes
150.It "vm.loadavg	struct	no
151.It "hw.machine	string	no
152.It "hw.model	string	no
153.It "hw.ncpu	integer	no
154.It "hw.byteorder	integer	no
155.It "hw.physmem	integer	no
156.It "hw.usermem	integer	no
157.It "hw.pagesize	integer	no
158.It "hw.floatingpoint	integer	no
159.It "hw.machine_arch	string	no
160.It "machdep.console_device	dev_t	no
161.It "machdep.adjkerntz	integer	yes
162.It "machdep.disable_rtc_set	integer	yes
163.It "user.cs_path	string	no
164.It "user.bc_base_max	integer	no
165.It "user.bc_dim_max	integer	no
166.It "user.bc_scale_max	integer	no
167.It "user.bc_string_max	integer	no
168.It "user.coll_weights_max	integer	no
169.It "user.expr_nest_max	integer	no
170.It "user.line_max	integer	no
171.It "user.re_dup_max	integer	no
172.It "user.posix2_version	integer	no
173.It "user.posix2_c_bind	integer	no
174.It "user.posix2_c_dev	integer	no
175.It "user.posix2_char_term	integer	no
176.It "user.posix2_fort_dev	integer	no
177.It "user.posix2_fort_run	integer	no
178.It "user.posix2_localedef	integer	no
179.It "user.posix2_sw_dev	integer	no
180.It "user.posix2_upe	integer	no
181.It "user.stream_max	integer	no
182.It "user.tzname_max	integer	no
183.El
184.Sh EXAMPLES
185For example, to retrieve the maximum number of processes allowed
186in the system, one would use the following request:
187.Bd -literal -offset indent -compact
188sysctl kern.maxproc
189.Ed
190.Pp
191To set the maximum number of processes allowed
192per uid to 1000, one would use the following request:
193.Bd -literal -offset indent -compact
194sysctl -w kern.maxprocperuid=1000
195.Ed
196.Pp
197Information about the system clock rate may be obtained with:
198.Bd -literal -offset indent -compact
199sysctl kern.clockrate
200.Ed
201.Pp
202Information about the load average history may be obtained with:
203.Bd -literal -offset indent -compact
204sysctl vm.loadavg
205.Ed
206.Pp
207More variables than these exist, and the best and likely only place
208to search for their deeper meaning is undoubtedly the source where
209they are defined.
210.Sh FILES
211.Bl -tag -width <netinet/icmpXvar.h> -compact
212.It Pa <sys/sysctl.h>
213definitions for top level identifiers, second level kernel and hardware
214identifiers, and user level identifiers
215.It Pa <sys/socket.h>
216definitions for second level network identifiers
217.It Pa <sys/gmon.h>
218definitions for third level profiling identifiers
219.It Pa <vm/vm_param.h>
220definitions for second level virtual memory identifiers
221.It Pa <netinet/in.h>
222definitions for third level Internet identifiers and
223fourth level IP identifiers
224.It Pa <netinet/icmp_var.h>
225definitions for fourth level ICMP identifiers
226.It Pa <netinet/udp_var.h>
227definitions for fourth level UDP identifiers
228.El
229.Sh SEE ALSO
230.Xr sysctl 3 ,
231.Xr blackhole 4 ,
232.Xr sysctl.conf 5
233.Sh BUGS
234.Nm Sysctl
235presently exploits an undocumented interface to the kernel
236sysctl facility to traverse the sysctl tree and to retrieve format
237and name information.
238This correct interface is being thought about for the time being.
239.Sh HISTORY
240.Nm Sysctl
241first appeared in
242.Bx 4.4 .
243.Pp
244In
245.Fx 2.2 ,
246.Nm
247was significantly remodeled.
248