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