1.\" $NetBSD: sysctl.8,v 1.50 2000/07/10 09:34:38 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.icmp.errppslimit integer yes 199.It net.inet.ip.allowsrcrt integer yes 200.It net.inet.ip.anonportmax integer yes 201.It net.inet.ip.anonportmin integer yes 202.It net.inet.ip.directed-broadcast integer yes 203.It net.inet.ip.forwarding integer yes 204.It net.inet.ip.forwsrcrt integer yes 205.It net.inet.ip.mtudisc integer yes 206.It net.inet.ip.mtudisctimeout integer yes 207.It net.inet.ip.redirect integer yes 208.It net.inet.ip.subnetsarelocal integer yes 209.It net.inet.ip.ttl integer yes 210.It net.inet.ipsec.ah_cleartos integer yes 211.It net.inet.ipsec.ah_net_deflev integer yes 212.It net.inet.ipsec.ah_offsetmask integer yes 213.It net.inet.ipsec.ah_trans_deflev integer yes 214.It net.inet.ipsec.def_policy integer yes 215.It net.inet.ipsec.dfbit integer yes 216.It net.inet.ipsec.ecn integer yes 217.It net.inet.ipsec.esp_net_deflev integer yes 218.It net.inet.ipsec.esp_trans_deflev integer yes 219.It net.inet.ipsec.inbound_call_ike integer yes 220.It net.inet.tcp.ack_on_push integer yes 221.It net.inet.tcp.compat_42 integer yes 222.It net.inet.tcp.cwm integer yes 223.It net.inet.tcp.cwm_burstsize integer yes 224.It net.inet.tcp.init_win integer yes 225.It net.inet.tcp.init_win integer yes 226.It net.inet.tcp.keepcnt integer yes 227.It net.inet.tcp.keepidle integer yes 228.It net.inet.tcp.keepintvl integer yes 229.It net.inet.tcp.log_refused integer yes 230.It net.inet.tcp.mss_ifmtu integer yes 231.It net.inet.tcp.mssdflt integer yes 232.It net.inet.tcp.recvspace integer yes 233.It net.inet.tcp.rfc1323 integer yes 234.It net.inet.tcp.rstratelimit integer yes 235.It net.inet.tcp.sack integer yes 236.It net.inet.tcp.sendspace integer yes 237.It net.inet.tcp.slowhz integer no 238.It net.inet.tcp.syn_bucket_limit integer yes 239.It net.inet.tcp.syn_cache_interval integer yes 240.It net.inet.tcp.syn_cache_limit integer yes 241.It net.inet.tcp.timestamps integer yes 242.It net.inet.tcp.win_scale integer yes 243.It net.inet.udp.checksum integer yes 244.It net.inet.udp.recvspace integer yes 245.It net.inet.udp.sendspace integer yes 246.It net.inet6.icmp6.errratelimit integer yes 247.It net.inet6.icmp6.errppslimit integer yes 248.It net.inet6.icmp6.nd6_delay integer yes 249.It net.inet6.icmp6.nd6_maxnudhint integer yes 250.It net.inet6.icmp6.nd6_mmaxtries integer yes 251.It net.inet6.icmp6.nd6_prune integer yes 252.It net.inet6.icmp6.nd6_umaxtries integer yes 253.It net.inet6.icmp6.nd6_useloopback integer yes 254.It net.inet6.icmp6.nodeinfo integer yes 255.It net.inet6.icmp6.rediraccept integer yes 256.It net.inet6.icmp6.redirtimeout integer yes 257.It net.inet6.ip6.accept_rtadv integer yes 258.It net.inet6.ip6.auto_flowlabel integer yes 259.It net.inet6.ip6.bindv6only integer yes 260.It net.inet6.ip6.dad_count integer yes 261.It net.inet6.ip6.defmcasthlim integer yes 262.It net.inet6.ip6.forwarding integer yes 263.It net.inet6.ip6.gif_hlim integer yes 264.It net.inet6.ip6.hdrnestlimit integer yes 265.It net.inet6.ip6.hlim integer yes 266.It net.inet6.ip6.kame_version string no 267.It net.inet6.ip6.keepfaith integer yes 268.It net.inet6.ip6.log_interval integer yes 269.It net.inet6.ip6.maxfragpackets integer yes 270.It net.inet6.ip6.redirect integer yes 271.It net.inet6.ip6.rr_prune integer yes 272.It net.inet6.ip6.use_deprecated integer yes 273.It net.inet6.ipsec6.ah_net_deflev integer yes 274.It net.inet6.ipsec6.ah_trans_deflev integer yes 275.It net.inet6.ipsec6.def_policy integer yes 276.It net.inet6.ipsec6.ecn integer yes 277.It net.inet6.ipsec6.esp_net_deflev integer yes 278.It net.inet6.ipsec6.esp_trans_deflev integer yes 279.It net.inet6.ipsec6.inbound_call_ike integer yes 280.It net.inet6.udp6.recvspace integer yes 281.It net.inet6.udp6.sendspace integer yes 282.It net.key.acq_exp_int integer yes 283.It net.key.acq_maxtime integer yes 284.It net.key.debug integer yes 285.It net.key.kill_int integer yes 286.It net.key.random_int integer yes 287.It net.key.spi_max_value integer yes 288.It net.key.spi_min_value integer yes 289.It net.key.spi_try integer yes 290.It proc.<pid>.corename string yes 291.It proc.<pid>.rlimit.coredumpsize.hard integer yes 292.It proc.<pid>.rlimit.coredumpsize.soft integer yes 293.It proc.<pid>.rlimit.cputime.hard integer yes 294.It proc.<pid>.rlimit.cputime.soft integer yes 295.It proc.<pid>.rlimit.datasize.hard integer yes 296.It proc.<pid>.rlimit.datasize.soft integer yes 297.It proc.<pid>.rlimit.filesize.hard integer yes 298.It proc.<pid>.rlimit.filesize.soft integer yes 299.It proc.<pid>.rlimit.maxproc.hard integer yes 300.It proc.<pid>.rlimit.maxproc.soft integer yes 301.It proc.<pid>.rlimit.memorylocked.hard integer yes 302.It proc.<pid>.rlimit.memorylocked.soft integer yes 303.It proc.<pid>.rlimit.memoryuse.hard integer yes 304.It proc.<pid>.rlimit.memoryuse.soft integer yes 305.It proc.<pid>.rlimit.stacksize.hard integer yes 306.It proc.<pid>.rlimit.stacksize.soft integer yes 307.It user.bc_base_max integer no 308.It user.bc_dim_max integer no 309.It user.bc_scale_max integer no 310.It user.bc_string_max integer no 311.It user.coll_weights_max integer no 312.It user.cs_path string no 313.It user.expr_nest_max integer no 314.It user.line_max integer no 315.It user.posix2_c_bind integer no 316.It user.posix2_c_dev integer no 317.It user.posix2_char_term integer no 318.It user.posix2_fort_dev integer no 319.It user.posix2_fort_run integer no 320.It user.posix2_localedef integer no 321.It user.posix2_sw_dev integer no 322.It user.posix2_upe integer no 323.It user.posix2_version integer no 324.It user.re_dup_max integer no 325.It vfs.generic.usermount integer yes 326.It vm.loadavg struct no 327.El 328.Sh EXAMPLES 329.Pp 330For example, to retrieve the maximum number of processes allowed 331in the system, one would use the following request: 332.Bd -literal -offset indent -compact 333sysctl kern.maxproc 334.Ed 335.Pp 336To set the maximum number of processes allowed 337in the system to 1000, one would use the following request: 338.Bd -literal -offset indent -compact 339sysctl -w kern.maxproc=1000 340.Ed 341.Pp 342Information about the system clock rate may be obtained with: 343.Bd -literal -offset indent -compact 344sysctl kern.clockrate 345.Ed 346.Pp 347Information about the load average history may be obtained with: 348.Bd -literal -offset indent -compact 349sysctl vm.loadavg 350.Ed 351.Pp 352To view the values of the per-process variables of the current shell, 353the request: 354.Bd -literal -offset indent -compact 355sysctl proc.$$ 356.Ed 357can be used if the shell interpreter replaces $$ with it's pid (this is true 358for most shells). 359.Pp 360To redirect core dumps to the /var/tmp/<username> directory, 361.Bd -literal -offset indent -compact 362sysctl -w proc.$$.corename=/var/tmp/%u/%n.core 363.Ed 364Shall be used. 365.Bd -literal -offset indent -compact 366sysctl -w proc.curproc.corename=/var/tmp/%u/%n.core 367.Ed 368changes the value for the sysctl process itself, and will not have the desired 369effect. 370 371.Sh FILES 372.Bl -tag -width <netinet6/udp6Xvar.h> -compact 373.It Pa <sys/sysctl.h> 374definitions for top level identifiers, second level kernel and hardware 375identifiers, and user level identifiers 376.It Pa <sys/socket.h> 377definitions for second level network identifiers 378.It Pa <sys/gmon.h> 379definitions for third level profiling identifiers 380.It Pa <uvm/uvm_param.h> 381definitions for second level virtual memory identifiers 382.It Pa <netinet/in.h> 383definitions for third level IPv4/v6 identifiers and 384fourth level IPv4/v6 identifiers 385.It Pa <netinet/icmp_var.h> 386definitions for fourth level ICMP identifiers 387.It Pa <netinet/icmp6.h> 388definitions for fourth level ICMPv6 identifiers 389.It Pa <netinet/tcp_var.h> 390definitions for fourth level TCP identifiers 391.It Pa <netinet/udp_var.h> 392definitions for fourth level UDP identifiers 393.It Pa <netinet6/udp6_var.h> 394definitions for fourth level IPv6 UDP identifiers 395.It Pa <netinet6/ipsec.h> 396definitions for fourth level IPsec identifiers 397.El 398.Sh SEE ALSO 399.Xr sysctl 3 400.Sh HISTORY 401.Nm sysctl 402first appeared in 403.Bx 4.4 . 404