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