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