1.\" $NetBSD: sysctl.8,v 1.86 2003/02/02 20:33:05 kleink 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 February 2, 2003 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.Op Fl q 49.Fl w 50.Ar name Ns Li = Ns Ar value ... 51.Nm sysctl 52.Op Fl n 53.Fl a 54.Nm sysctl 55.Op Fl n 56.Fl A 57.Nm sysctl 58.Op Fl n 59.Op Fl q 60.Fl f 61.Ar file 62.Sh DESCRIPTION 63The 64.Nm sysctl 65utility retrieves kernel state and allows processes with 66appropriate privilege to set kernel state. 67The state to be retrieved or set is described using a 68``Management Information Base'' (``MIB'') style name, 69described as a dotted set of components. 70The 71.Fl a 72flag can be used to list all the currently available string or integer values. 73The 74.Fl A 75flag will list all the known MIB names including tables. 76Those with string or integer values will be printed as with the 77.Fl a 78flag; for the table values, 79the name of the utility to retrieve them is given. 80.Pp 81The 82.Fl n 83flag specifies that the printing of the field name should be 84suppressed and that only its value should be output. 85This flag is useful for setting shell variables. 86For example, to save the pagesize in variable psize, use: 87.Bd -literal -offset indent -compact 88set psize=`sysctl -n hw.pagesize` 89.Ed 90.Pp 91If just a MIB style name is given, 92the corresponding value is retrieved. 93If a value is to be set, the 94.Fl w 95flag must be specified and the MIB name followed 96by an equal sign and the new value to be used. 97.Pp 98The 99.Fl f 100flag specifies the name of a file to read and process. 101Blank lines and comments (beginning with 102.Ql # ) 103are ignored. 104Line continuations with 105.Ql \e 106are permitted. 107Remaining lines are processed similarly to 108command line arguments of the form 109.Ar name 110or 111.Ar name Ns Li = Ns Ar value . 112The 113.Fl w 114flag is implied by 115.Fl f . 116.Pp 117The 118.Fl q 119flag may be used with 120.Fl f 121and 122.Fl w 123to indicate that nothing should be printed for writes unless an error is 124detected. 125.Pp 126The 127.Ql proc 128top-level MIB has a special semantic: it represent per-process values 129and as such may differ from one process to another. 130The second-level name is the pid of the process (in decimal form), 131or the special word 132.Ql curproc . 133For variables below 134.Ql proc.\*[Lt]pid\*[Gt].rlimit , 135the integer value may be replaced 136with the string 137.Ql unlimited 138if it matches the magic value used to disable 139a limit. 140.Pp 141The information available from 142.Nm sysctl 143consists of integers, strings, and tables. 144The tabular information can only be retrieved by special 145purpose programs such as 146.Nm ps , 147.Nm systat , 148and 149.Nm netstat . 150The string and integer information is summarized below. 151For a detailed description of these variable see 152.Xr sysctl 3 . 153The changeable column indicates whether a process with appropriate 154privilege can change the value. 155.Bl -column proc.xpidx.rlimit.coredumpsize.hardxxxxxx integerxxx 156.It Sy Name Type Changeable 157.It ddb.fromconsole integer yes 158.It ddb.lines integer yes 159.It ddb.maxoff integer yes 160.It ddb.maxwidth integer yes 161.It ddb.onpanic integer yes 162.It ddb.radix integer yes 163.It ddb.tabstops integer yes 164.It hw.alignbytes integer no 165.It hw.byteorder integer no 166.It hw.disknames string no 167.It hw.diskstats struct no 168.It hw.machine string no 169.It hw.machine_arch string no 170.It hw.model string no 171.It hw.ncpu integer no 172.It hw.pagesize integer no 173.It hw.physmem integer no 174.It hw.usermem integer no 175.It hw.cnmagic string yes 176.It kern.argmax integer no 177.It kern.autonicetime integer yes 178.It kern.autoniceval integer yes 179.It kern.boottime struct no 180.It kern.ccpu integer no 181.It kern.chown_restricted integer no 182.It kern.clockrate struct no 183.It kern.consdev integer no 184.It kern.cp_time struct no 185.It kern.defcorename string yes 186.It kern.domainname string yes 187.It kern.forkfsleep integer yes 188.It kern.fscale integer no 189.It kern.fsync integer no 190.It kern.hostid integer yes 191.It kern.hostname string yes 192.It kern.iov_max integer no 193.It kern.job_control integer no 194.It kern.labeloffset integer no 195.It kern.labelsector integer no 196.It kern.link_max integer no 197.It kern.login_name_max integer no 198.It kern.logsigexit integer yes 199.It kern.max_canon integer no 200.It kern.max_input integer no 201.It kern.maxfiles integer yes 202.It kern.maxpartitions integer no 203.It kern.maxproc integer yes 204.It kern.maxptys integer yes, special 205.It kern.maxvnodes integer raise only 206.It kern.mapped_files integer no 207.It kern.maxphys integer no 208.It kern.memlock integer no 209.It kern.memlock_range integer no 210.It kern.memory_protection integer no 211.It kern.mbuf.mblowat integer yes 212.It kern.mbuf.mcllowat integer yes 213.It kern.mbuf.mclsize integer no 214.It kern.mbuf.msize integer no 215.It kern.mbuf.nmbclusters integer raise only 216.It kern.monotonic_clock integer no 217.It kern.msgbuf struct no 218.It kern.msgbufsize integer no 219.It kern.name_max integer no 220.It kern.ngroups integer no 221.It kern.no_trunc integer no 222.It kern.ntptime struct no 223.It kern.osrelease string no 224.It kern.osrevision integer no 225.It kern.ostype string no 226.It kern.path_max integer no 227.It kern.pipe.maxkvasz integer yes 228.It kern.pipe.maxloankvasz integer yes 229.It kern.pipe.maxbigpipes integer yes 230.It kern.pipe.nbigpipes integer no 231.It kern.pipe.kvasize integer no 232.It kern.posix1version integer no 233.It kern.posix_barriers integer no 234.It kern.posix_reader_writer_locks integer no 235.It kern.posix_semaphores integer no 236.It kern.posix_spin_locks integer no 237.It kern.posix_timers integer no 238.It kern.posix_threads integer no 239.It kern.proc2 struct no 240.It kern.proc_args string yes 241.It kern.rawpartition integer no 242.It kern.rtc_offset integer no 243.It kern.saved_ids integer no 244.It kern.sbmax integer yes 245.It kern.securelevel integer raise only 246.It kern.synchronized_io integer no 247.It kern.sysvipc_info struct no 248.It kern.sysvmsg integer no 249.It kern.sysvsem integer no 250.It kern.sysvshm integer no 251.It kern.timex struct no 252.It kern.tkstat.nin quad no 253.It kern.tkstat.nout quad no 254.It kern.tkstat.cancc quad no 255.It kern.tkstat.rawcc quad no 256.It kern.urnd integer no 257.It kern.vdisable integer no 258.It kern.version string no 259.It machdep.console_device dev_t no 260.It net.inet.icmp.maskrepl integer yes 261.It net.inet.icmp.errppslimit integer yes 262.It net.inet.icmp.rediraccept integer yes 263.It net.inet.icmp.redirtimeout integer yes 264.It net.inet.ip.allowsrcrt integer yes 265.It net.inet.ip.anonportmax integer yes 266.It net.inet.ip.anonportmin integer yes 267.It net.inet.ip.directed-broadcast integer yes 268.It net.inet.ip.forwarding integer yes 269.It net.inet.ip.forwsrcrt integer yes 270.It net.inet.ip.maxfragpacket integer yes 271.It net.inet.ip.lowportmax integer yes 272.It net.inet.ip.lowportmin integer yes 273.It net.inet.ip.mtudisc integer yes 274.It net.inet.ip.mtudisctimeout integer yes 275.It net.inet.ip.redirect integer yes 276.It net.inet.ip.subnetsarelocal integer yes 277.It net.inet.ip.ttl integer yes 278.It net.inet.ipsec.ah_cleartos integer yes 279.It net.inet.ipsec.ah_net_deflev integer yes 280.It net.inet.ipsec.ah_offsetmask integer yes 281.It net.inet.ipsec.ah_trans_deflev integer yes 282.It net.inet.ipsec.def_policy integer yes 283.It net.inet.ipsec.dfbit integer yes 284.It net.inet.ipsec.ecn integer yes 285.It net.inet.ipsec.esp_net_deflev integer yes 286.It net.inet.ipsec.esp_trans_deflev integer yes 287.It net.inet.ipsec.inbound_call_ike integer yes 288.It net.inet.tcp.ack_on_push integer yes 289.It net.inet.tcp.compat_42 integer yes 290.It net.inet.tcp.cwm integer yes 291.It net.inet.tcp.cwm_burstsize integer yes 292.It net.inet.tcp.init_win integer yes 293.It net.inet.tcp.keepcnt integer yes 294.It net.inet.tcp.keepidle integer yes 295.It net.inet.tcp.keepintvl integer yes 296.It net.inet.tcp.log_refused integer yes 297.It net.inet.tcp.mss_ifmtu integer yes 298.It net.inet.tcp.mssdflt integer yes 299.It net.inet.tcp.recvspace integer yes 300.It net.inet.tcp.rfc1323 integer yes 301.It net.inet.tcp.rstppslimit integer yes 302.It net.inet.tcp.sack integer yes 303.It net.inet.tcp.sendspace integer yes 304.It net.inet.tcp.slowhz integer no 305.It net.inet.tcp.syn_bucket_limit integer yes 306.It net.inet.tcp.syn_cache_interval integer yes 307.It net.inet.tcp.syn_cache_limit integer yes 308.It net.inet.tcp.timestamps integer yes 309.It net.inet.tcp.win_scale integer yes 310.It net.inet.udp.checksum integer yes 311.It net.inet.udp.recvspace integer yes 312.It net.inet.udp.sendspace integer yes 313.It net.inet6.icmp6.errppslimit integer yes 314.It net.inet6.icmp6.mtudisc_hiwat integer yes 315.It net.inet6.icmp6.mtudisc_lowat integer yes 316.It net.inet6.icmp6.nd6_debug integer yes 317.It net.inet6.icmp6.nd6_delay integer yes 318.It net.inet6.icmp6.nd6_maxnudhint integer yes 319.It net.inet6.icmp6.nd6_mmaxtries integer yes 320.It net.inet6.icmp6.nd6_prune integer yes 321.It net.inet6.icmp6.nd6_umaxtries integer yes 322.It net.inet6.icmp6.nd6_useloopback integer yes 323.It net.inet6.icmp6.nodeinfo integer yes 324.It net.inet6.icmp6.rediraccept integer yes 325.It net.inet6.icmp6.redirtimeout integer yes 326.It net.inet6.ip6.accept_rtadv integer yes 327.It net.inet6.ip6.anonportmax integer yes 328.It net.inet6.ip6.anonportmin integer yes 329.It net.inet6.ip6.auto_flowlabel integer yes 330.It net.inet6.ip6.v6only integer yes 331.It net.inet6.ip6.dad_count integer yes 332.It net.inet6.ip6.defmcasthlim integer yes 333.It net.inet6.ip6.forwarding integer yes 334.It net.inet6.ip6.gif_hlim integer yes 335.It net.inet6.ip6.hdrnestlimit integer yes 336.It net.inet6.ip6.hlim integer yes 337.It net.inet6.ip6.kame_version string no 338.It net.inet6.ip6.keepfaith integer yes 339.It net.inet6.ip6.log_interval integer yes 340.It net.inet6.ip6.lowportmax integer yes 341.It net.inet6.ip6.lowportmin integer yes 342.It net.inet6.ip6.maxfragpackets integer yes 343.It net.inet6.ip6.maxfrags integer yes 344.It net.inet6.ip6.redirect integer yes 345.It net.inet6.ip6.rr_prune integer yes 346.It net.inet6.ip6.use_deprecated integer yes 347.It net.inet6.ipsec6.ah_net_deflev integer yes 348.It net.inet6.ipsec6.ah_trans_deflev integer yes 349.It net.inet6.ipsec6.def_policy integer yes 350.It net.inet6.ipsec6.ecn integer yes 351.It net.inet6.ipsec6.esp_net_deflev integer yes 352.It net.inet6.ipsec6.esp_trans_deflev integer yes 353.It net.inet6.ipsec6.inbound_call_ike integer yes 354.It net.inet6.udp6.recvspace integer yes 355.It net.inet6.udp6.sendspace integer yes 356.It net.key.acq_exp_int integer yes 357.It net.key.acq_maxtime integer yes 358.It net.key.ah_keymin integer yes 359.It net.key.debug integer yes 360.It net.key.esp_auth integer yes 361.It net.key.esp_keymin integer yes 362.It net.key.kill_int integer yes 363.It net.key.random_int integer yes 364.It net.key.spi_max_value integer yes 365.It net.key.spi_min_value integer yes 366.It net.key.spi_try integer yes 367.It proc.\*[Lt]pid\*[Gt].corename string yes 368.It proc.\*[Lt]pid\*[Gt].rlimit.coredumpsize.hard integer yes 369.It proc.\*[Lt]pid\*[Gt].rlimit.coredumpsize.soft integer yes 370.It proc.\*[Lt]pid\*[Gt].rlimit.cputime.hard integer yes 371.It proc.\*[Lt]pid\*[Gt].rlimit.cputime.soft integer yes 372.It proc.\*[Lt]pid\*[Gt].rlimit.datasize.hard integer yes 373.It proc.\*[Lt]pid\*[Gt].rlimit.datasize.soft integer yes 374.It proc.\*[Lt]pid\*[Gt].rlimit.filesize.hard integer yes 375.It proc.\*[Lt]pid\*[Gt].rlimit.filesize.soft integer yes 376.It proc.\*[Lt]pid\*[Gt].rlimit.maxproc.hard integer yes 377.It proc.\*[Lt]pid\*[Gt].rlimit.maxproc.soft integer yes 378.It proc.\*[Lt]pid\*[Gt].rlimit.memorylocked.hard integer yes 379.It proc.\*[Lt]pid\*[Gt].rlimit.memorylocked.soft integer yes 380.It proc.\*[Lt]pid\*[Gt].rlimit.memoryuse.hard integer yes 381.It proc.\*[Lt]pid\*[Gt].rlimit.memoryuse.soft integer yes 382.It proc.\*[Lt]pid\*[Gt].rlimit.stacksize.hard integer yes 383.It proc.\*[Lt]pid\*[Gt].rlimit.stacksize.soft integer yes 384.It proc.\*[Lt]pid\*[Gt].stopexec int yes 385.It proc.\*[Lt]pid\*[Gt].stopfork int yes 386.It user.bc_base_max integer no 387.It user.bc_dim_max integer no 388.It user.bc_scale_max integer no 389.It user.bc_string_max integer no 390.It user.coll_weights_max integer no 391.It user.cs_path string no 392.It user.expr_nest_max integer no 393.It user.line_max integer no 394.It user.posix2_c_bind integer no 395.It user.posix2_c_dev integer no 396.It user.posix2_char_term integer no 397.It user.posix2_fort_dev integer no 398.It user.posix2_fort_run integer no 399.It user.posix2_localedef integer no 400.It user.posix2_sw_dev integer no 401.It user.posix2_upe integer no 402.It user.posix2_version integer no 403.It user.re_dup_max integer no 404.It vendor.\*[Lt]vendor\*[Gt].* ? vendor specific 405.It vfs.generic.usermount integer yes 406.It vfs.nfs.iothreads integer yes 407.It vm.anonmax integer yes 408.It vm.anonmin integer yes 409.It vm.execmax integer yes 410.It vm.execmin integer yes 411.It vm.filemax integer yes 412.It vm.filemin integer yes 413.It vm.loadavg struct no 414.It vm.nkmempages integer no 415.It vm.uvmexp struct no 416.It vm.uvmexp2 struct no 417.It vm.vmmeter struct no 418.El 419.Pp 420Entries found under 421.Dq vendor.\*[Lt]vendor\*[Gt] 422are left to be specified (and used) by vendors 423using the 424.Nx 425operating system in their products. 426Values and structure are vendor-defined, and no registry 427exists right now. 428.Sh FILES 429.Bl -tag -width xnetinet6/udp6Xvar.hx -compact 430.It Aq Pa sys/sysctl.h 431definitions for top level identifiers, second level kernel and hardware 432identifiers, and user level identifiers 433.It Aq Pa sys/socket.h 434definitions for second level network identifiers 435.It Aq Pa sys/gmon.h 436definitions for third level profiling identifiers 437.It Aq Pa uvm/uvm_param.h 438definitions for second level virtual memory identifiers 439.It Aq Pa netinet/in.h 440definitions for third level IPv4/v6 identifiers and 441fourth level IPv4/v6 identifiers 442.It Aq Pa netinet/icmp_var.h 443definitions for fourth level ICMP identifiers 444.It Aq Pa netinet/icmp6.h 445definitions for fourth level ICMPv6 identifiers 446.It Aq Pa netinet/tcp_var.h 447definitions for fourth level TCP identifiers 448.It Aq Pa netinet/udp_var.h 449definitions for fourth level UDP identifiers 450.It Aq Pa netinet6/udp6_var.h 451definitions for fourth level IPv6 UDP identifiers 452.It Aq Pa netinet6/ipsec.h 453definitions for fourth level IPsec identifiers 454.It Aq Pa netkey/key_var.h 455definitions for third level PF_KEY identifiers 456.El 457.Sh EXAMPLES 458For example, to retrieve the maximum number of processes allowed 459in the system, one would use the following request: 460.Bd -literal -offset indent -compact 461sysctl kern.maxproc 462.Ed 463.Pp 464To set the maximum number of processes allowed 465in the system to 1000, one would use the following request: 466.Bd -literal -offset indent -compact 467sysctl -w kern.maxproc=1000 468.Ed 469.Pp 470Information about the system clock rate may be obtained with: 471.Bd -literal -offset indent -compact 472sysctl kern.clockrate 473.Ed 474.Pp 475Information about the load average history may be obtained with: 476.Bd -literal -offset indent -compact 477sysctl vm.loadavg 478.Ed 479.Pp 480To view the values of the per-process variables of the current shell, 481the request: 482.Bd -literal -offset indent -compact 483sysctl proc.$$ 484.Ed 485can be used if the shell interpreter replaces $$ with it's pid (this is true 486for most shells). 487.Pp 488To redirect core dumps to the /var/tmp/\*[Lt]username\*[Gt] directory, 489.Bd -literal -offset indent -compact 490sysctl -w proc.$$.corename=/var/tmp/%u/%n.core 491.Ed 492Shall be used. 493.Bd -literal -offset indent -compact 494sysctl -w proc.curproc.corename=/var/tmp/%u/%n.core 495.Ed 496changes the value for the sysctl process itself, and will not have the desired 497effect. 498.Sh SEE ALSO 499.Xr sysctl 3 500.Sh HISTORY 501.Nm sysctl 502first appeared in 503.Bx 4.4 . 504