1.\" $NetBSD: sysctl.8,v 1.71 2001/12/24 00:49:36 chs 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 Ns Li = Ns Ar 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 100.Ql # ) 101are ignored. Line continuations with 102.Ql \e 103are permitted. Remaining lines are processed similarly to 104command line arguments of the form 105.Ar name 106or 107.Ar name Ns Li = Ns Ar value . 108The 109.Fl w 110flag is implied by 111.Fl f . 112.Pp 113The 114.Ql proc 115top-level MIB has a special semantic: it represent per-process values 116and as such may differ from one process to another. The second-level name 117is the pid of the process (in decimal form), or the special word 118.Ql curproc . 119For variables below 120.Ql proc.<pid>.rlimit , 121the integer value may be replaced 122with the string 123.Ql unlimited 124if it matches the magic value used to disable 125a limit. 126.Pp 127The information available from 128.Nm sysctl 129consists of integers, strings, and tables. 130The tabular information can only be retrieved by special 131purpose programs such as 132.Nm ps , 133.Nm systat , 134and 135.Nm netstat . 136The string and integer information is summarized below. 137For a detailed description of these variable see 138.Xr sysctl 3 . 139The changeable column indicates whether a process with appropriate 140privilege can change the value. 141.Bl -column proc.<pid>.rlimit.coredumpsize.hardxxxxxx integerxxx 142.It Sy Name Type Changeable 143.It ddb.fromconsole integer yes 144.It ddb.lines integer yes 145.It ddb.maxoff integer yes 146.It ddb.maxwidth integer yes 147.It ddb.onpanic integer yes 148.It ddb.radix integer yes 149.It ddb.tabstops integer yes 150.It hw.alignbytes integer no 151.It hw.byteorder integer no 152.\".It hw.disknames struct no 153.\".It hw.diskstats struct no 154.It hw.machine string no 155.It hw.machine_arch string no 156.It hw.model string no 157.It hw.ncpu integer no 158.It hw.pagesize integer no 159.It hw.physmem integer no 160.It hw.usermem integer no 161.It hw.cnmagic string yes 162.It kern.argmax integer no 163.It kern.autonicetime integer yes 164.It kern.autoniceval integer yes 165.It kern.boottime struct no 166.It kern.chown_restricted integer no 167.It kern.clockrate struct no 168.It kern.defcorename string yes 169.It kern.fsync integer no 170.It kern.hostid integer yes 171.It kern.hostname string yes 172.It kern.iov_max integer no 173.It kern.job_control integer no 174.It kern.link_max integer no 175.It kern.login_name_max integer no 176.It kern.logsigexit integer yes 177.It kern.max_canon integer no 178.It kern.max_input integer no 179.It kern.maxfiles integer yes 180.It kern.maxpartitions integer no 181.It kern.maxproc integer yes 182.It kern.maxptys integer yes, special 183.It kern.maxvnodes integer raise only 184.It kern.mapped_files integer no 185.It kern.memlock integer no 186.It kern.memlock_rage integer no 187.It kern.memory_protection integer no 188.It kern.mbuf.mblowat integer yes 189.It kern.mbuf.mcllowat integer yes 190.It kern.mbuf.mclsize integer no 191.It kern.mbuf.msize integer no 192.It kern.mbuf.nmbclusters integer raise only 193.It kern.msgbufsize integer no 194.It kern.name_max integer no 195.It kern.ngroups integer no 196.It kern.no_trunc integer no 197.It kern.osrelease string no 198.It kern.osrevision integer no 199.It kern.ostype string no 200.It kern.path_max integer no 201.It kern.pipe.maxkvasz integer yes 202.It kern.pipe.maxloankvasz integer yes 203.It kern.pipe.maxbigpipes integer yes 204.It kern.pipe.nbigpipes integer no 205.It kern.pipe.kvasize integer no 206.It kern.posix1version integer no 207.It kern.rawpartition integer no 208.It kern.saved_ids integer no 209.It kern.securelevel integer raise only 210.It kern.synchronized_io integer no 211.It kern.sysvmsg integer no 212.It kern.sysvsem integer no 213.It kern.sysvshm integer no 214.It kern.vdisable integer no 215.It kern.version string no 216.It machdep.console_device dev_t no 217.It net.inet.icmp.maskrepl integer yes 218.It net.inet.icmp.errppslimit integer yes 219.It net.inet.icmp.rediraccept integer yes 220.It net.inet.icmp.redirtimeout integer yes 221.It net.inet.ip.allowsrcrt integer yes 222.It net.inet.ip.anonportmax integer yes 223.It net.inet.ip.anonportmin integer yes 224.It net.inet.ip.directed-broadcast integer yes 225.It net.inet.ip.forwarding integer yes 226.It net.inet.ip.forwsrcrt integer yes 227.It net.inet.ip.maxfragpacket integer yes 228.It net.inet.ip.lowportmax integer yes 229.It net.inet.ip.lowportmin integer yes 230.It net.inet.ip.mtudisc integer yes 231.It net.inet.ip.mtudisctimeout integer yes 232.It net.inet.ip.redirect integer yes 233.It net.inet.ip.subnetsarelocal integer yes 234.It net.inet.ip.ttl integer yes 235.It net.inet.ipsec.ah_cleartos integer yes 236.It net.inet.ipsec.ah_net_deflev integer yes 237.It net.inet.ipsec.ah_offsetmask integer yes 238.It net.inet.ipsec.ah_trans_deflev integer yes 239.It net.inet.ipsec.def_policy integer yes 240.It net.inet.ipsec.dfbit integer yes 241.It net.inet.ipsec.ecn integer yes 242.It net.inet.ipsec.esp_net_deflev integer yes 243.It net.inet.ipsec.esp_trans_deflev integer yes 244.It net.inet.ipsec.inbound_call_ike integer yes 245.It net.inet.tcp.ack_on_push integer yes 246.It net.inet.tcp.compat_42 integer yes 247.It net.inet.tcp.cwm integer yes 248.It net.inet.tcp.cwm_burstsize integer yes 249.It net.inet.tcp.init_win integer yes 250.It net.inet.tcp.keepcnt integer yes 251.It net.inet.tcp.keepidle integer yes 252.It net.inet.tcp.keepintvl integer yes 253.It net.inet.tcp.log_refused integer yes 254.It net.inet.tcp.mss_ifmtu integer yes 255.It net.inet.tcp.mssdflt integer yes 256.It net.inet.tcp.recvspace integer yes 257.It net.inet.tcp.rfc1323 integer yes 258.It net.inet.tcp.rstppslimit integer yes 259.It net.inet.tcp.sack integer yes 260.It net.inet.tcp.sendspace integer yes 261.It net.inet.tcp.slowhz integer no 262.It net.inet.tcp.syn_bucket_limit integer yes 263.It net.inet.tcp.syn_cache_interval integer yes 264.It net.inet.tcp.syn_cache_limit integer yes 265.It net.inet.tcp.timestamps integer yes 266.It net.inet.tcp.win_scale integer yes 267.It net.inet.udp.checksum integer yes 268.It net.inet.udp.recvspace integer yes 269.It net.inet.udp.sendspace integer yes 270.It net.inet6.icmp6.errppslimit integer yes 271.It net.inet6.icmp6.mtudisc_hiwat integer yes 272.It net.inet6.icmp6.mtudisc_lowat integer yes 273.It net.inet6.icmp6.nd6_debug integer yes 274.It net.inet6.icmp6.nd6_delay integer yes 275.It net.inet6.icmp6.nd6_maxnudhint integer yes 276.It net.inet6.icmp6.nd6_mmaxtries integer yes 277.It net.inet6.icmp6.nd6_prune integer yes 278.It net.inet6.icmp6.nd6_umaxtries integer yes 279.It net.inet6.icmp6.nd6_useloopback integer yes 280.It net.inet6.icmp6.nodeinfo integer yes 281.It net.inet6.icmp6.rediraccept integer yes 282.It net.inet6.icmp6.redirtimeout integer yes 283.It net.inet6.ip6.accept_rtadv integer yes 284.It net.inet6.ip6.anonportmax integer yes 285.It net.inet6.ip6.anonportmin integer yes 286.It net.inet6.ip6.auto_flowlabel integer yes 287.It net.inet6.ip6.bindv6only integer yes 288.It net.inet6.ip6.dad_count integer yes 289.It net.inet6.ip6.defmcasthlim integer yes 290.It net.inet6.ip6.forwarding integer yes 291.It net.inet6.ip6.gif_hlim integer yes 292.It net.inet6.ip6.hdrnestlimit integer yes 293.It net.inet6.ip6.hlim integer yes 294.It net.inet6.ip6.kame_version string no 295.It net.inet6.ip6.keepfaith integer yes 296.It net.inet6.ip6.log_interval integer yes 297.It net.inet6.ip6.lowportmax integer yes 298.It net.inet6.ip6.lowportmin integer yes 299.It net.inet6.ip6.maxfragpackets integer yes 300.It net.inet6.ip6.redirect integer yes 301.It net.inet6.ip6.rr_prune integer yes 302.It net.inet6.ip6.use_deprecated integer yes 303.It net.inet6.ipsec6.ah_net_deflev integer yes 304.It net.inet6.ipsec6.ah_trans_deflev integer yes 305.It net.inet6.ipsec6.def_policy integer yes 306.It net.inet6.ipsec6.ecn integer yes 307.It net.inet6.ipsec6.esp_net_deflev integer yes 308.It net.inet6.ipsec6.esp_trans_deflev integer yes 309.It net.inet6.ipsec6.inbound_call_ike integer yes 310.It net.inet6.udp6.recvspace integer yes 311.It net.inet6.udp6.sendspace integer yes 312.It net.key.acq_exp_int integer yes 313.It net.key.acq_maxtime integer yes 314.It net.key.debug integer yes 315.It net.key.kill_int integer yes 316.It net.key.random_int integer yes 317.It net.key.spi_max_value integer yes 318.It net.key.spi_min_value integer yes 319.It net.key.spi_try integer yes 320.It proc.<pid>.corename string yes 321.It proc.<pid>.rlimit.coredumpsize.hard integer yes 322.It proc.<pid>.rlimit.coredumpsize.soft integer yes 323.It proc.<pid>.rlimit.cputime.hard integer yes 324.It proc.<pid>.rlimit.cputime.soft integer yes 325.It proc.<pid>.rlimit.datasize.hard integer yes 326.It proc.<pid>.rlimit.datasize.soft integer yes 327.It proc.<pid>.rlimit.filesize.hard integer yes 328.It proc.<pid>.rlimit.filesize.soft integer yes 329.It proc.<pid>.rlimit.maxproc.hard integer yes 330.It proc.<pid>.rlimit.maxproc.soft integer yes 331.It proc.<pid>.rlimit.memorylocked.hard integer yes 332.It proc.<pid>.rlimit.memorylocked.soft integer yes 333.It proc.<pid>.rlimit.memoryuse.hard integer yes 334.It proc.<pid>.rlimit.memoryuse.soft integer yes 335.It proc.<pid>.rlimit.stacksize.hard integer yes 336.It proc.<pid>.rlimit.stacksize.soft integer yes 337.It user.bc_base_max integer no 338.It user.bc_dim_max integer no 339.It user.bc_scale_max integer no 340.It user.bc_string_max integer no 341.It user.coll_weights_max integer no 342.It user.cs_path string no 343.It user.expr_nest_max integer no 344.It user.line_max integer no 345.It user.posix2_c_bind integer no 346.It user.posix2_c_dev integer no 347.It user.posix2_char_term integer no 348.It user.posix2_fort_dev integer no 349.It user.posix2_fort_run integer no 350.It user.posix2_localedef integer no 351.It user.posix2_sw_dev integer no 352.It user.posix2_upe integer no 353.It user.posix2_version integer no 354.It user.re_dup_max integer no 355.It vendor.<vendor>.* ? vendor specific 356.It vfs.generic.usermount integer yes 357.It vm.anonmax integer yes 358.It vm.anonmin integer yes 359.It vm.execmax integer yes 360.It vm.execmin integer yes 361.It vm.filemax integer yes 362.It vm.filemin integer yes 363.It vm.loadavg struct no 364.It vm.nkmempages integer no 365.It vm.uvmexp struct no 366.It vm.uvmexp2 struct no 367.It vm.vmmeter struct no 368.El 369.Pp 370Entries found under 371.Dq vendor.<vendor> 372are left to be specified (and used) by vendors 373using the 374.Nx 375operating system in their products. 376Values and structure are vendor-defined, and no registry 377exists right now. 378.Sh FILES 379.Bl -tag -width <netinet6/udp6Xvar.h> -compact 380.It Pa <sys/sysctl.h> 381definitions for top level identifiers, second level kernel and hardware 382identifiers, and user level identifiers 383.It Pa <sys/socket.h> 384definitions for second level network identifiers 385.It Pa <sys/gmon.h> 386definitions for third level profiling identifiers 387.It Pa <uvm/uvm_param.h> 388definitions for second level virtual memory identifiers 389.It Pa <netinet/in.h> 390definitions for third level IPv4/v6 identifiers and 391fourth level IPv4/v6 identifiers 392.It Pa <netinet/icmp_var.h> 393definitions for fourth level ICMP identifiers 394.It Pa <netinet/icmp6.h> 395definitions for fourth level ICMPv6 identifiers 396.It Pa <netinet/tcp_var.h> 397definitions for fourth level TCP identifiers 398.It Pa <netinet/udp_var.h> 399definitions for fourth level UDP identifiers 400.It Pa <netinet6/udp6_var.h> 401definitions for fourth level IPv6 UDP identifiers 402.It Pa <netinet6/ipsec.h> 403definitions for fourth level IPsec identifiers 404.El 405.Sh EXAMPLES 406For example, to retrieve the maximum number of processes allowed 407in the system, one would use the following request: 408.Bd -literal -offset indent -compact 409sysctl kern.maxproc 410.Ed 411.Pp 412To set the maximum number of processes allowed 413in the system to 1000, one would use the following request: 414.Bd -literal -offset indent -compact 415sysctl -w kern.maxproc=1000 416.Ed 417.Pp 418Information about the system clock rate may be obtained with: 419.Bd -literal -offset indent -compact 420sysctl kern.clockrate 421.Ed 422.Pp 423Information about the load average history may be obtained with: 424.Bd -literal -offset indent -compact 425sysctl vm.loadavg 426.Ed 427.Pp 428To view the values of the per-process variables of the current shell, 429the request: 430.Bd -literal -offset indent -compact 431sysctl proc.$$ 432.Ed 433can be used if the shell interpreter replaces $$ with it's pid (this is true 434for most shells). 435.Pp 436To redirect core dumps to the /var/tmp/<username> directory, 437.Bd -literal -offset indent -compact 438sysctl -w proc.$$.corename=/var/tmp/%u/%n.core 439.Ed 440Shall be used. 441.Bd -literal -offset indent -compact 442sysctl -w proc.curproc.corename=/var/tmp/%u/%n.core 443.Ed 444changes the value for the sysctl process itself, and will not have the desired 445effect. 446.Sh SEE ALSO 447.Xr sysctl 3 448.Sh HISTORY 449.Nm sysctl 450first appeared in 451.Bx 4.4 . 452