1.\" $NetBSD: sysctl.8,v 1.67 2001/06/16 12:00:04 jdolecek 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.ip.allowsrcrt integer yes 220.It net.inet.ip.anonportmax integer yes 221.It net.inet.ip.anonportmin integer yes 222.It net.inet.ip.directed-broadcast integer yes 223.It net.inet.ip.forwarding integer yes 224.It net.inet.ip.forwsrcrt integer yes 225.It net.inet.ip.maxfragpacket integer yes 226.It net.inet.ip.lowportmax integer yes 227.It net.inet.ip.lowportmin integer yes 228.It net.inet.ip.mtudisc integer yes 229.It net.inet.ip.mtudisctimeout integer yes 230.It net.inet.ip.redirect integer yes 231.It net.inet.ip.subnetsarelocal integer yes 232.It net.inet.ip.ttl integer yes 233.It net.inet.ipsec.ah_cleartos integer yes 234.It net.inet.ipsec.ah_net_deflev integer yes 235.It net.inet.ipsec.ah_offsetmask integer yes 236.It net.inet.ipsec.ah_trans_deflev integer yes 237.It net.inet.ipsec.def_policy integer yes 238.It net.inet.ipsec.dfbit integer yes 239.It net.inet.ipsec.ecn integer yes 240.It net.inet.ipsec.esp_net_deflev integer yes 241.It net.inet.ipsec.esp_trans_deflev integer yes 242.It net.inet.ipsec.inbound_call_ike integer yes 243.It net.inet.tcp.ack_on_push integer yes 244.It net.inet.tcp.compat_42 integer yes 245.It net.inet.tcp.cwm integer yes 246.It net.inet.tcp.cwm_burstsize integer yes 247.It net.inet.tcp.init_win integer yes 248.It net.inet.tcp.init_win integer yes 249.It net.inet.tcp.keepcnt integer yes 250.It net.inet.tcp.keepidle integer yes 251.It net.inet.tcp.keepintvl integer yes 252.It net.inet.tcp.log_refused integer yes 253.It net.inet.tcp.mss_ifmtu integer yes 254.It net.inet.tcp.mssdflt integer yes 255.It net.inet.tcp.recvspace integer yes 256.It net.inet.tcp.rfc1323 integer yes 257.It net.inet.tcp.rstppslimit integer yes 258.It net.inet.tcp.sack integer yes 259.It net.inet.tcp.sendspace integer yes 260.It net.inet.tcp.slowhz integer no 261.It net.inet.tcp.syn_bucket_limit integer yes 262.It net.inet.tcp.syn_cache_interval integer yes 263.It net.inet.tcp.syn_cache_limit integer yes 264.It net.inet.tcp.timestamps integer yes 265.It net.inet.tcp.win_scale integer yes 266.It net.inet.udp.checksum integer yes 267.It net.inet.udp.recvspace integer yes 268.It net.inet.udp.sendspace integer yes 269.It net.inet6.icmp6.errppslimit integer yes 270.It net.inet6.icmp6.mtudisc_hiwat integer yes 271.It net.inet6.icmp6.mtudisc_lowat integer yes 272.It net.inet6.icmp6.nd6_debug integer yes 273.It net.inet6.icmp6.nd6_delay integer yes 274.It net.inet6.icmp6.nd6_maxnudhint integer yes 275.It net.inet6.icmp6.nd6_mmaxtries integer yes 276.It net.inet6.icmp6.nd6_prune integer yes 277.It net.inet6.icmp6.nd6_umaxtries integer yes 278.It net.inet6.icmp6.nd6_useloopback integer yes 279.It net.inet6.icmp6.nodeinfo integer yes 280.It net.inet6.icmp6.rediraccept integer yes 281.It net.inet6.icmp6.redirtimeout integer yes 282.It net.inet6.ip6.accept_rtadv integer yes 283.It net.inet6.ip6.anonportmax integer yes 284.It net.inet6.ip6.anonportmin integer yes 285.It net.inet6.ip6.auto_flowlabel integer yes 286.It net.inet6.ip6.bindv6only integer yes 287.It net.inet6.ip6.dad_count integer yes 288.It net.inet6.ip6.defmcasthlim integer yes 289.It net.inet6.ip6.forwarding integer yes 290.It net.inet6.ip6.gif_hlim integer yes 291.It net.inet6.ip6.hdrnestlimit integer yes 292.It net.inet6.ip6.hlim integer yes 293.It net.inet6.ip6.kame_version string no 294.It net.inet6.ip6.keepfaith integer yes 295.It net.inet6.ip6.log_interval integer yes 296.It net.inet6.ip6.lowportmax integer yes 297.It net.inet6.ip6.lowportmin integer yes 298.It net.inet6.ip6.maxfragpackets integer yes 299.It net.inet6.ip6.redirect integer yes 300.It net.inet6.ip6.rr_prune integer yes 301.It net.inet6.ip6.use_deprecated integer yes 302.It net.inet6.ipsec6.ah_net_deflev integer yes 303.It net.inet6.ipsec6.ah_trans_deflev integer yes 304.It net.inet6.ipsec6.def_policy integer yes 305.It net.inet6.ipsec6.ecn integer yes 306.It net.inet6.ipsec6.esp_net_deflev integer yes 307.It net.inet6.ipsec6.esp_trans_deflev integer yes 308.It net.inet6.ipsec6.inbound_call_ike integer yes 309.It net.inet6.udp6.recvspace integer yes 310.It net.inet6.udp6.sendspace integer yes 311.It net.key.acq_exp_int integer yes 312.It net.key.acq_maxtime integer yes 313.It net.key.debug integer yes 314.It net.key.kill_int integer yes 315.It net.key.random_int integer yes 316.It net.key.spi_max_value integer yes 317.It net.key.spi_min_value integer yes 318.It net.key.spi_try integer yes 319.It proc.<pid>.corename string yes 320.It proc.<pid>.rlimit.coredumpsize.hard integer yes 321.It proc.<pid>.rlimit.coredumpsize.soft integer yes 322.It proc.<pid>.rlimit.cputime.hard integer yes 323.It proc.<pid>.rlimit.cputime.soft integer yes 324.It proc.<pid>.rlimit.datasize.hard integer yes 325.It proc.<pid>.rlimit.datasize.soft integer yes 326.It proc.<pid>.rlimit.filesize.hard integer yes 327.It proc.<pid>.rlimit.filesize.soft integer yes 328.It proc.<pid>.rlimit.maxproc.hard integer yes 329.It proc.<pid>.rlimit.maxproc.soft integer yes 330.It proc.<pid>.rlimit.memorylocked.hard integer yes 331.It proc.<pid>.rlimit.memorylocked.soft integer yes 332.It proc.<pid>.rlimit.memoryuse.hard integer yes 333.It proc.<pid>.rlimit.memoryuse.soft integer yes 334.It proc.<pid>.rlimit.stacksize.hard integer yes 335.It proc.<pid>.rlimit.stacksize.soft integer yes 336.It user.bc_base_max integer no 337.It user.bc_dim_max integer no 338.It user.bc_scale_max integer no 339.It user.bc_string_max integer no 340.It user.coll_weights_max integer no 341.It user.cs_path string no 342.It user.expr_nest_max integer no 343.It user.line_max integer no 344.It user.posix2_c_bind integer no 345.It user.posix2_c_dev integer no 346.It user.posix2_char_term integer no 347.It user.posix2_fort_dev integer no 348.It user.posix2_fort_run integer no 349.It user.posix2_localedef integer no 350.It user.posix2_sw_dev integer no 351.It user.posix2_upe integer no 352.It user.posix2_version integer no 353.It user.re_dup_max integer no 354.It vendor.<vendor>.* ? vendor specific 355.It vfs.generic.usermount integer yes 356.It vm.anonmin integer yes 357.It vm.loadavg struct no 358.It vm.nkmempages integer no 359.It vm.uvmexp struct no 360.It vm.uvmexp2 struct no 361.It vm.vmmeter struct no 362.It vm.vnodemin integer yes 363.It vm.vtextmin integer yes 364.El 365.Pp 366Entries found under 367.Dq vendor.<vendor> 368are left to be specified (and used) by vendors 369using the NetBSD operating system in their products. 370Values and structure are vendor-defined, and no registry 371exists right now. 372.Sh EXAMPLES 373.Pp 374For example, to retrieve the maximum number of processes allowed 375in the system, one would use the following request: 376.Bd -literal -offset indent -compact 377sysctl kern.maxproc 378.Ed 379.Pp 380To set the maximum number of processes allowed 381in the system to 1000, one would use the following request: 382.Bd -literal -offset indent -compact 383sysctl -w kern.maxproc=1000 384.Ed 385.Pp 386Information about the system clock rate may be obtained with: 387.Bd -literal -offset indent -compact 388sysctl kern.clockrate 389.Ed 390.Pp 391Information about the load average history may be obtained with: 392.Bd -literal -offset indent -compact 393sysctl vm.loadavg 394.Ed 395.Pp 396To view the values of the per-process variables of the current shell, 397the request: 398.Bd -literal -offset indent -compact 399sysctl proc.$$ 400.Ed 401can be used if the shell interpreter replaces $$ with it's pid (this is true 402for most shells). 403.Pp 404To redirect core dumps to the /var/tmp/<username> directory, 405.Bd -literal -offset indent -compact 406sysctl -w proc.$$.corename=/var/tmp/%u/%n.core 407.Ed 408Shall be used. 409.Bd -literal -offset indent -compact 410sysctl -w proc.curproc.corename=/var/tmp/%u/%n.core 411.Ed 412changes the value for the sysctl process itself, and will not have the desired 413effect. 414 415.Sh FILES 416.Bl -tag -width <netinet6/udp6Xvar.h> -compact 417.It Pa <sys/sysctl.h> 418definitions for top level identifiers, second level kernel and hardware 419identifiers, and user level identifiers 420.It Pa <sys/socket.h> 421definitions for second level network identifiers 422.It Pa <sys/gmon.h> 423definitions for third level profiling identifiers 424.It Pa <uvm/uvm_param.h> 425definitions for second level virtual memory identifiers 426.It Pa <netinet/in.h> 427definitions for third level IPv4/v6 identifiers and 428fourth level IPv4/v6 identifiers 429.It Pa <netinet/icmp_var.h> 430definitions for fourth level ICMP identifiers 431.It Pa <netinet/icmp6.h> 432definitions for fourth level ICMPv6 identifiers 433.It Pa <netinet/tcp_var.h> 434definitions for fourth level TCP identifiers 435.It Pa <netinet/udp_var.h> 436definitions for fourth level UDP identifiers 437.It Pa <netinet6/udp6_var.h> 438definitions for fourth level IPv6 UDP identifiers 439.It Pa <netinet6/ipsec.h> 440definitions for fourth level IPsec identifiers 441.El 442.Sh SEE ALSO 443.Xr sysctl 3 444.Sh HISTORY 445.Nm sysctl 446first appeared in 447.Bx 4.4 . 448