1.\" $NetBSD: sysctl.8,v 1.47 2000/05/23 12:35:35 itojun Exp $ 2.\" 3.\" Copyright (c) 1993 4.\" The Regents of the University of California. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. All advertising materials mentioning features or use of this software 15.\" must display the following acknowledgement: 16.\" This product includes software developed by the University of 17.\" California, Berkeley and its contributors. 18.\" 4. Neither the name of the University nor the names of its contributors 19.\" may be used to endorse or promote products derived from this software 20.\" without specific prior written permission. 21.\" 22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32.\" SUCH DAMAGE. 33.\" 34.\" @(#)sysctl.8 8.1 (Berkeley) 6/6/93 35.\" 36.Dd June 6, 1993 37.Dt SYSCTL 8 38.Os 39.Sh NAME 40.Nm sysctl 41.Nd get or set kernel state 42.Sh SYNOPSIS 43.Nm sysctl 44.Op Fl n 45.Ar name ... 46.Nm sysctl 47.Op Fl n 48.Fl w 49.Ar name=value ... 50.Nm sysctl 51.Op Fl n 52.Fl a 53.Nm sysctl 54.Op Fl n 55.Fl A 56.Nm sysctl 57.Op Fl n 58.Fl f 59.Ar file 60.Sh DESCRIPTION 61The 62.Nm sysctl 63utility retrieves kernel state and allows processes with 64appropriate privilege to set kernel state. 65The state to be retrieved or set is described using a 66``Management Information Base'' (``MIB'') style name, 67described as a dotted set of components. 68The 69.Fl a 70flag can be used to list all the currently available string or integer values. 71The 72.Fl A 73flag will list all the known MIB names including tables. 74Those with string or integer values will be printed as with the 75.Fl a 76flag; for the table values, 77the name of the utility to retrieve them is given. 78.Pp 79The 80.Fl n 81flag specifies that the printing of the field name should be 82suppressed and that only its value should be output. 83This flag is useful for setting shell variables. 84For example, to save the pagesize in variable psize, use: 85.Bd -literal -offset indent -compact 86set psize=`sysctl -n hw.pagesize` 87.Ed 88.Pp 89If just a MIB style name is given, 90the corresponding value is retrieved. 91If a value is to be set, the 92.Fl w 93flag must be specified and the MIB name followed 94by an equal sign and the new value to be used. 95.Pp 96The 97.Fl f 98flag specifies the name of a file to read and process. Blank lines and 99comments (beginning with ``#'') are ignored. Line continuations with 100``\\'' are permitted. Remaining lines are processed similarly to 101command line arguments of the form 102.Ar name 103or 104.Ar name=value . 105The 106.Fl w 107flag is implied by 108.Fl f . 109.Pp 110The proc top-level MIB has a special semantic: it represent per-process values 111and as such may differ from one process to another. The second-level name 112is the pid of the process (in decimal form), or the special word 'curproc'. 113For variables below 'proc.<pid>.rlimit', the integer value may be remplaced 114with the string 'unlimited' if it matches the magic value used to disable 115a limit. 116.Pp 117The information available from 118.Nm sysctl 119consists of integers, strings, and tables. 120The tabular information can only be retrieved by special 121purpose programs such as 122.Nm ps , 123.Nm systat , 124and 125.Nm netstat . 126The string and integer information is summarized below. 127For a detailed description of these variable see 128.Xr sysctl 3 . 129The changeable column indicates whether a process with appropriate 130privilege can change the value. 131.Bl -column proc.<pid>.rlimit.coredumpsize.hardxxxxxx integerxxx 132.It Sy Name Type Changeable 133.It ddb.fromconsole integer yes 134.It ddb.lines integer yes 135.It ddb.maxoff integer yes 136.It ddb.maxwidth integer yes 137.It ddb.onpanic integer yes 138.It ddb.radix integer yes 139.It ddb.tabstops integer yes 140.It hw.alignbytes integer no 141.It hw.byteorder integer no 142.\".It hw.disknames struct no 143.\".It hw.diskstats struct no 144.It hw.machine string no 145.It hw.machine_arch string no 146.It hw.model string no 147.It hw.ncpu integer no 148.It hw.pagesize integer no 149.It hw.physmem integer no 150.It hw.usermem integer no 151.It kern.argmax integer no 152.It kern.autonicetime integer yes 153.It kern.autoniceval integer yes 154.It kern.boottime struct no 155.It kern.chown_restricted integer no 156.It kern.clockrate struct no 157.It kern.defcorename string yes 158.It kern.fsync integer no 159.It kern.hostid integer yes 160.It kern.hostname string yes 161.It kern.iov_max integer no 162.It kern.job_control integer no 163.It kern.link_max integer no 164.It kern.logsigexit integer yes 165.It kern.max_canon integer no 166.It kern.max_input integer no 167.It kern.maxfiles integer yes 168.It kern.maxpartitions integer no 169.It kern.maxproc integer yes 170.It kern.maxvnodes integer yes 171.It kern.mbuf.mblowat integer yes 172.It kern.mbuf.mcllowat integer yes 173.It kern.mbuf.mclsize integer no 174.It kern.mbuf.msize integer no 175.It kern.mbuf.nmbclusters integer raise only 176.It kern.msgbufsize integer no 177.It kern.name_max integer no 178.It kern.ngroups integer no 179.It kern.no_trunc integer no 180.It kern.osrelease string no 181.It kern.osrevision integer no 182.It kern.ostype string no 183.It kern.path_max integer no 184.It kern.pipe_buf integer no 185.It kern.posix1version integer no 186.It kern.rawpartition integer no 187.It kern.saved_ids integer no 188.It kern.securelevel integer raise only 189.It kern.synchronized_io integer no 190.It kern.sysvmsg integer no 191.It kern.sysvsem integer no 192.It kern.sysvshm integer no 193.It kern.vdisable integer no 194.It kern.version string no 195.It machdep.console_device dev_t no 196.It net.inet.icmp.errratelimit integer yes 197.It net.inet.icmp.maskrepl integer yes 198.It net.inet.ip.allowsrcrt integer yes 199.It net.inet.ip.anonportmax integer yes 200.It net.inet.ip.anonportmin integer yes 201.It net.inet.ip.directed-broadcast integer yes 202.It net.inet.ip.forwarding integer yes 203.It net.inet.ip.forwsrcrt integer yes 204.It net.inet.ip.mtudisc integer yes 205.It net.inet.ip.mtudisctimeout integer yes 206.It net.inet.ip.redirect integer yes 207.It net.inet.ip.subnetsarelocal integer yes 208.It net.inet.ip.ttl integer yes 209.It net.inet.ipsec.ah_cleartos integer yes 210.It net.inet.ipsec.ah_net_deflev integer yes 211.It net.inet.ipsec.ah_offsetmask integer yes 212.It net.inet.ipsec.ah_trans_deflev integer yes 213.It net.inet.ipsec.def_policy integer yes 214.It net.inet.ipsec.dfbit integer yes 215.It net.inet.ipsec.ecn integer yes 216.It net.inet.ipsec.esp_net_deflev integer yes 217.It net.inet.ipsec.esp_trans_deflev integer yes 218.It net.inet.ipsec.inbound_call_ike integer yes 219.It net.inet.tcp.ack_on_push integer yes 220.It net.inet.tcp.compat_42 integer yes 221.It net.inet.tcp.cwm integer yes 222.It net.inet.tcp.cwm_burstsize integer yes 223.It net.inet.tcp.init_win integer yes 224.It net.inet.tcp.init_win integer yes 225.It net.inet.tcp.keepcnt integer yes 226.It net.inet.tcp.keepidle integer yes 227.It net.inet.tcp.keepintvl integer yes 228.It net.inet.tcp.log_refused integer yes 229.It net.inet.tcp.mss_ifmtu integer yes 230.It net.inet.tcp.mssdflt integer yes 231.It net.inet.tcp.recvspace integer yes 232.It net.inet.tcp.rfc1323 integer yes 233.It net.inet.tcp.rstratelimit integer yes 234.It net.inet.tcp.sack integer yes 235.It net.inet.tcp.sendspace integer yes 236.It net.inet.tcp.slowhz integer no 237.It net.inet.tcp.syn_bucket_limit integer yes 238.It net.inet.tcp.syn_cache_interval integer yes 239.It net.inet.tcp.syn_cache_limit integer yes 240.It net.inet.tcp.timestamps integer yes 241.It net.inet.tcp.win_scale integer yes 242.It net.inet.udp.checksum integer yes 243.It net.inet.udp.recvspace integer yes 244.It net.inet.udp.sendspace integer yes 245.It net.inet6.icmp6.errratelimit integer yes 246.It net.inet6.icmp6.nd6_delay integer yes 247.It net.inet6.icmp6.nd6_mmaxtries integer yes 248.It net.inet6.icmp6.nd6_prune integer yes 249.It net.inet6.icmp6.nd6_umaxtries integer yes 250.It net.inet6.icmp6.nd6_useloopback integer yes 251.It net.inet6.icmp6.nodeinfo integer yes 252.It net.inet6.icmp6.rediraccept integer yes 253.It net.inet6.icmp6.redirtimeout integer yes 254.It net.inet6.ip6.accept_rtadv integer yes 255.It net.inet6.ip6.auto_flowlabel integer yes 256.It net.inet6.ip6.bindv6only integer yes 257.It net.inet6.ip6.dad_count integer yes 258.It net.inet6.ip6.defmcasthlim integer yes 259.It net.inet6.ip6.forwarding integer yes 260.It net.inet6.ip6.gif_hlim integer yes 261.It net.inet6.ip6.hdrnestlimit integer yes 262.It net.inet6.ip6.hlim integer yes 263.It net.inet6.ip6.kame_version string no 264.It net.inet6.ip6.keepfaith integer yes 265.It net.inet6.ip6.log_interval integer yes 266.It net.inet6.ip6.maxfragpackets integer yes 267.It net.inet6.ip6.redirect integer yes 268.It net.inet6.ip6.rr_prune integer yes 269.It net.inet6.ip6.use_deprecated integer yes 270.It net.inet6.ipsec6.ah_net_deflev integer yes 271.It net.inet6.ipsec6.ah_trans_deflev integer yes 272.It net.inet6.ipsec6.def_policy integer yes 273.It net.inet6.ipsec6.ecn integer yes 274.It net.inet6.ipsec6.esp_net_deflev integer yes 275.It net.inet6.ipsec6.esp_trans_deflev integer yes 276.It net.inet6.ipsec6.inbound_call_ike integer yes 277.It net.inet6.udp6.recvspace integer yes 278.It net.inet6.udp6.sendspace integer yes 279.It net.key.acq_exp_int integer yes 280.It net.key.acq_maxtime integer yes 281.It net.key.debug integer yes 282.It net.key.kill_int integer yes 283.It net.key.random_int integer yes 284.It net.key.spi_max_value integer yes 285.It net.key.spi_min_value integer yes 286.It net.key.spi_try integer yes 287.It proc.<pid>.corename string yes 288.It proc.<pid>.rlimit.coredumpsize.hard integer yes 289.It proc.<pid>.rlimit.coredumpsize.soft integer yes 290.It proc.<pid>.rlimit.cputime.hard integer yes 291.It proc.<pid>.rlimit.cputime.soft integer yes 292.It proc.<pid>.rlimit.datasize.hard integer yes 293.It proc.<pid>.rlimit.datasize.soft integer yes 294.It proc.<pid>.rlimit.filesize.hard integer yes 295.It proc.<pid>.rlimit.filesize.soft integer yes 296.It proc.<pid>.rlimit.maxproc.hard integer yes 297.It proc.<pid>.rlimit.maxproc.soft integer yes 298.It proc.<pid>.rlimit.memorylocked.hard integer yes 299.It proc.<pid>.rlimit.memorylocked.soft integer yes 300.It proc.<pid>.rlimit.memoryuse.hard integer yes 301.It proc.<pid>.rlimit.memoryuse.soft integer yes 302.It proc.<pid>.rlimit.stacksize.hard integer yes 303.It proc.<pid>.rlimit.stacksize.soft integer yes 304.It user.bc_base_max integer no 305.It user.bc_dim_max integer no 306.It user.bc_scale_max integer no 307.It user.bc_string_max integer no 308.It user.coll_weights_max integer no 309.It user.cs_path string no 310.It user.expr_nest_max integer no 311.It user.line_max integer no 312.It user.posix2_c_bind integer no 313.It user.posix2_c_dev integer no 314.It user.posix2_char_term integer no 315.It user.posix2_fort_dev integer no 316.It user.posix2_fort_run integer no 317.It user.posix2_localedef integer no 318.It user.posix2_sw_dev integer no 319.It user.posix2_upe integer no 320.It user.posix2_version integer no 321.It user.re_dup_max integer no 322.It vfs.generic.usermount integer yes 323.It vm.loadavg struct no 324.El 325.Sh EXAMPLES 326.Pp 327For example, to retrieve the maximum number of processes allowed 328in the system, one would use the following request: 329.Bd -literal -offset indent -compact 330sysctl kern.maxproc 331.Ed 332.Pp 333To set the maximum number of processes allowed 334in the system to 1000, one would use the following request: 335.Bd -literal -offset indent -compact 336sysctl -w kern.maxproc=1000 337.Ed 338.Pp 339Information about the system clock rate may be obtained with: 340.Bd -literal -offset indent -compact 341sysctl kern.clockrate 342.Ed 343.Pp 344Information about the load average history may be obtained with: 345.Bd -literal -offset indent -compact 346sysctl vm.loadavg 347.Ed 348.Pp 349To view the values of the per-process variables of the current shell, 350the request: 351.Bd -literal -offset indent -compact 352sysctl proc.$$ 353.Ed 354can be used if the shell interpreter replaces $$ with it's pid (this is true 355for most shells). 356.Pp 357To redirect core dumps to the /var/tmp/<username> directory, 358.Bd -literal -offset indent -compact 359sysctl -w proc.$$.corename=/var/tmp/%u/%n.core 360.Ed 361Shall be used. 362.Bd -literal -offset indent -compact 363sysctl -w proc.curproc.corename=/var/tmp/%u/%n.core 364.Ed 365changes the value for the sysctl process itself, and will not have the desired 366effect. 367 368.Sh FILES 369.Bl -tag -width <netinet6/udp6Xvar.h> -compact 370.It Pa <sys/sysctl.h> 371definitions for top level identifiers, second level kernel and hardware 372identifiers, and user level identifiers 373.It Pa <sys/socket.h> 374definitions for second level network identifiers 375.It Pa <sys/gmon.h> 376definitions for third level profiling identifiers 377.It Pa <vm/vm_param.h> 378definitions for second level virtual memory identifiers 379.It Pa <netinet/in.h> 380definitions for third level IPv4/v6 identifiers and 381fourth level IPv4/v6 identifiers 382.It Pa <netinet/icmp_var.h> 383definitions for fourth level ICMP identifiers 384.It Pa <netinet/icmp6.h> 385definitions for fourth level ICMPv6 identifiers 386.It Pa <netinet/tcp_var.h> 387definitions for fourth level TCP identifiers 388.It Pa <netinet/udp_var.h> 389definitions for fourth level UDP identifiers 390.It Pa <netinet6/udp6_var.h> 391definitions for fourth level IPv6 UDP identifiers 392.It Pa <netinet6/ipsec.h> 393definitions for fourth level IPsec identifiers 394.El 395.Sh SEE ALSO 396.Xr sysctl 3 397.Sh HISTORY 398.Nm sysctl 399first appeared in 400.Bx 4.4 . 401