1.\" $MirOS: src/sbin/sysctl/sysctl.8,v 1.4 2006/10/18 00:52:25 tg Exp $ 2.\" $OpenBSD: sysctl.8,v 1.126 2005/05/04 05:12:53 jaredy Exp $ 3.\" $NetBSD: sysctl.8,v 1.4 1995/09/30 07:12:49 thorpej Exp $ 4.\" 5.\" Copyright (c) 1993 6.\" The Regents of the University of California. All rights reserved. 7.\" 8.\" Redistribution and use in source and binary forms, with or without 9.\" modification, are permitted provided that the following conditions 10.\" are met: 11.\" 1. Redistributions of source code must retain the above copyright 12.\" notice, this list of conditions and the following disclaimer. 13.\" 2. Redistributions in binary form must reproduce the above copyright 14.\" notice, this list of conditions and the following disclaimer in the 15.\" documentation and/or other materials provided with the distribution. 16.\" 3. Neither the name of the University nor the names of its contributors 17.\" may be used to endorse or promote products derived from this software 18.\" without specific prior written permission. 19.\" 20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" SUCH DAMAGE. 31.\" 32.\" @(#)sysctl.8 8.2 (Berkeley) 5/9/95 33.\" 34.Dd December 18, 2002 35.Dt SYSCTL 8 36.Os 37.Sh NAME 38.Nm sysctl 39.Nd get or set kernel state 40.Sh SYNOPSIS 41.Nm sysctl 42.Op Fl n 43.Ar variable ... 44.Nm sysctl 45.Op Fl nqw 46.Ar variable Ns = Ns Ar value ... 47.Nm sysctl 48.Op Fl n 49.Fl Aa 50.Sh DESCRIPTION 51The 52.Nm 53utility retrieves kernel state and allows processes with 54appropriate privilege to set kernel state. 55The state to be retrieved or set is described using a 56.Dq Management Information Base 57.Pq MIB 58style name, described as a dotted set of components. 59.Pp 60When setting a variable, 61the MIB name should be followed by an equal sign and the new value. 62Variables are set implicitly using the 63.Ar variable Ns = Ns Ar value 64syntax, or explicitly with the 65.Fl w 66option. 67Both forms are identical. 68.Pp 69The options are as follows: 70.Bl -tag -width xxx 71.It Fl A 72List all the known MIB names including tables. 73Those with string or integer values will be printed as with the 74.Fl a 75flag; for the table values, the name of the utility to retrieve them is given. 76.It Fl a 77List all the currently available string or integer values. 78.It Fl n 79Suppress printing of the field name, only output the field value. 80Useful for setting shell variables. 81For example, to set the psize shell variable to the pagesize of the hardware: 82.Pp 83.Dl # set psize=`sysctl -n hw.pagesize` 84.Pp 85.It Fl q 86Suppress all output when setting a variable. 87This option overrides the behaviour of 88.Fl n . 89.It Fl w 90Set a variable. 91It must be followed by a 92.Ar variable Ns = Ns Ar value 93assignment. 94The 95.Fl w 96flag is optional when setting a variable. 97.El 98.Pp 99The information available from 100.Nm 101consists of integers, strings, and tables. 102The tabular information can only be retrieved by special 103purpose programs such as 104.Xr ps 1 , 105.Xr systat 1 , 106and 107.Xr netstat 1 . 108The string and integer information is summarized below. 109For a detailed description of these variables, see 110.Xr sysctl 3 . 111The changeable column indicates whether a process with appropriate 112privilege can change the value. 113.Pp 114Note: 115not all of the variables are relevant to all architectures. 116.Bl -column net.inet.ip.ipsec-expire-acquirexxxx integerxxx 117.It Sy Name Type Changeable 118.It kern.ostype string no 119.It kern.osrelease string no 120.It kern.osrevision integer no 121.It kern.version string no 122.It kern.maxvnodes integer yes 123.It kern.maxproc integer yes 124.It kern.maxfiles integer yes 125.It kern.argmax integer no 126.It kern.securelevel integer raise only 127.It kern.hostname string yes 128.It kern.hostid u_int yes 129.It kern.clockrate struct no 130.It kern.posix1version integer no 131.It kern.ngroups integer no 132.It kern.job_control integer no 133.It kern.saved_ids integer no 134.It kern.boottime struct no 135.It kern.domainname string yes 136.It kern.maxpartitions integer no 137.It kern.rawpartition integer no 138.It kern.osversion string no 139.It kern.somaxconn integer yes 140.It kern.sominconn integer yes 141.It kern.usermount integer yes 142.It kern.random struct no 143.It kern.nosuidcoredump integer yes 144.It kern.fsync integer no 145.It kern.sysvmsg integer no 146.It kern.sysvsem integer no 147.It kern.sysvshm integer no 148.It kern.arandom u_int no 149.It kern.msgbufsize integer no 150.It kern.malloc.buckets string no 151.It kern.malloc.bucket.<sz> string no 152.It kern.malloc.kmemnames string no 153.It kern.malloc.kmemstat.<name> string no 154.It kern.cp_time struct no 155.It kern.nchstats struct no 156.It kern.forkstat struct no 157.It kern.nselcoll integer no 158.It kern.tty.tk_nin int64_t no 159.It kern.tty.tk_nout int64_t no 160.It kern.tty.tk_rawcc int64_t no 161.It kern.tty.tk_cancc int64_t no 162.It kern.tty.ttyinfo struct no 163.It kern.tty.maxptys integer yes 164.It kern.tty.nptys integer no 165.It kern.ccpu u_int no 166.It kern.fscale integer no 167.It kern.nprocs integer no 168.It kern.stackgap_random integer yes 169.It kern.usercrypto integer yes 170.It kern.cryptodevallowsoft integer yes 171.It kern.splassert integer yes 172.It kern.nfiles integer no 173.It kern.ttycount integer no 174.It kern.numvnodes integer no 175.It kern.userasymcrypto integer yes 176.It kern.seminfo.semmni integer yes 177.It kern.seminfo.semmns integer yes 178.It kern.seminfo.semmnu integer yes 179.It kern.seminfo.semmsl integer yes 180.It kern.seminfo.semopm integer yes 181.It kern.seminfo.semume integer no 182.It kern.seminfo.semusz integer no 183.It kern.seminfo.semvmx integer no 184.It kern.seminfo.semaem integer no 185.It kern.shminfo.shmmax integer yes 186.It kern.shminfo.shmmin integer yes 187.It kern.shminfo.shmmni integer yes 188.It kern.shminfo.shmseg integer yes 189.It kern.shminfo.shmall integer yes 190.It kern.watchdog.period integer yes 191.It kern.watchdog.auto integer yes 192.It kern.emul.nemuls integer no 193.It kern.emul.other integer yes 194.It kern.emul_uname string yes 195.It kern.maxclusters integer yes 196.It kern.timecounter.tick integer no 197.It kern.timecounter.timestepwarnings integer no 198.It kern.timecounter.hardware string yes 199.It kern.timecounter.choice string no 200.It vm.vmmeter struct no 201.It vm.loadavg struct no 202.It vm.psstrings struct no 203.It vm.uvmexp struct no 204.It vm.swapencrypt.enable integer yes 205.It vm.swapencrypt.keyscreated integer no 206.It vm.swapencrypt.keysdeleted integer no 207.It vm.nkmempages integer no 208.It vm.anonmin integer yes 209.It vm.vtextmin integer yes 210.It vm.vnodemin integer yes 211.It vm.maxslp integer no 212.It vm.uspace integer no 213.It fs.posix.setuid integer yes 214.It net.inet.ip.forwarding integer yes 215.It net.inet.ip.redirect integer yes 216.It net.inet.ip.ttl integer yes 217.\" .It net.inet.ip.mtu integer yes 218.It net.inet.ip.sourceroute integer yes 219.It net.inet.ip.directed-broadcast integer yes 220.It net.inet.ip.portfirst integer yes 221.It net.inet.ip.portlast integer yes 222.It net.inet.ip.porthifirst integer yes 223.It net.inet.ip.porthilast integer yes 224.It net.inet.ip.maxqueue integer yes 225.It net.inet.ip.encdebug integer yes 226.It net.inet.ip.ipsec-expire-acquire integer yes 227.It net.inet.ip.ipsec-invalid-life integer yes 228.It net.inet.ip.ipsec-pfs integer yes 229.It net.inet.ip.ipsec-soft-allocs integer yes 230.It net.inet.ip.ipsec-allocs integer yes 231.It net.inet.ip.ipsec-soft-bytes integer yes 232.It net.inet.ip.ipsec-bytes integer yes 233.It net.inet.ip.ipsec-timeout integer yes 234.It net.inet.ip.ipsec-soft-timeout integer yes 235.It net.inet.ip.ipsec-soft-firstuse integer yes 236.It net.inet.ip.ipsec-firstuse integer yes 237.It net.inet.ip.ipsec-enc-alg string yes 238.It net.inet.ip.ipsec-auth-alg string yes 239.It net.inet.ip.mtudisc integer yes 240.It net.inet.ip.mtudisctimeout integer yes 241.It net.inet.ip.ipsec-comp-alg string yes 242.It net.inet.icmp.maskrepl integer yes 243.It net.inet.icmp.bmcastecho integer yes 244.It net.inet.icmp.errppslimit integer yes 245.It net.inet.icmp.rediraccept integer yes 246.It net.inet.icmp.redirtimeout integer yes 247.It net.inet.icmp.tstamprepl integer yes 248.It net.inet.ipip.allow integer yes 249.It net.inet.tcp.rfc1323 integer yes 250.It net.inet.tcp.keepinittime integer yes 251.It net.inet.tcp.keepidle integer yes 252.It net.inet.tcp.keepintvl integer yes 253.It net.inet.tcp.slowhz integer no 254.It net.inet.tcp.baddynamic array yes 255.It net.inet.tcp.recvspace integer yes 256.It net.inet.tcp.sendspace integer yes 257.It net.inet.tcp.sack integer yes 258.It net.inet.tcp.mssdflt integer yes 259.It net.inet.tcp.rstppslimit integer yes 260.It net.inet.tcp.ackonpush integer yes 261.It net.inet.tcp.ecn integer yes 262.It net.inet.tcp.syncachelimit integer yes 263.It net.inet.tcp.synbucketlimit integer yes 264.It net.inet.tcp.rfc3390 integer yes 265.It net.inet.tcp.reasslimit integer yes 266.It net.inet.udp.checksum integer yes 267.It net.inet.udp.baddynamic array yes 268.It net.inet.udp.recvspace integer yes 269.It net.inet.udp.sendspace integer yes 270.It net.inet.gre.allow integer yes 271.It net.inet.gre.wccp integer yes 272.It net.inet.esp.enable integer yes 273.It net.inet.esp.udpencap integer yes 274.It net.inet.esp.udpencap_port integer yes 275.It net.inet.ah.enable integer yes 276.It net.inet.mobileip.allow integer yes 277.It net.inet.etherip.allow integer yes 278.It net.inet.ipcomp.enable integer yes 279.It net.inet.carp.allow integer yes 280.It net.inet.carp.preempt integer yes 281.It net.inet.carp.log integer yes 282.It net.inet.carp.arpbalance integer yes 283.It net.inet6.ip6.forwarding integer yes 284.It net.inet6.ip6.redirect integer yes 285.It net.inet6.ip6.hlim integer yes 286.It net.inet6.ip6.maxfragpackets integer yes 287.It net.inet6.ip6.accept_rtadv integer yes 288.It net.inet6.ip6.keepfaith integer yes 289.It net.inet6.ip6.log_interval integer yes 290.It net.inet6.ip6.hdrnestlimit integer yes 291.It net.inet6.ip6.dad_count integer yes 292.It net.inet6.ip6.auto_flowlabel integer yes 293.It net.inet6.ip6.defmcasthlim integer yes 294.It net.inet6.ip6.kame_version string no 295.It net.inet6.ip6.use_deprecated integer yes 296.It net.inet6.ip6.rr_prune integer yes 297.It net.inet6.ip6.v6only integer no 298.It net.inet6.ip6.maxfrags integer yes 299.It net.inet6.icmp6.rediraccept integer yes 300.It net.inet6.icmp6.redirtimeout integer yes 301.It net.inet6.icmp6.nd6_prune integer yes 302.It net.inet6.icmp6.nd6_delay integer yes 303.It net.inet6.icmp6.nd6_umaxtries integer yes 304.It net.inet6.icmp6.nd6_mmaxtries integer yes 305.It net.inet6.icmp6.nd6_useloopback integer yes 306.It net.inet6.icmp6.nodeinfo integer yes 307.It net.inet6.icmp6.errppslimit integer yes 308.It net.inet6.icmp6.nd6_maxnudhint integer yes 309.It net.inet6.icmp6.mtudisc_hiwat integer yes 310.It net.inet6.icmp6.mtudisc_lowat integer yes 311.It net.inet6.icmp6.nd6_debug integer yes 312.It net.ipx.ipx.checksum integer yes 313.It net.ipx.ipx.forwarding integer yes 314.It net.ipx.ipx.netbios integer yes 315.It net.ipx.ipx.recvspace integer yes 316.It net.ipx.ipx.sendspace integer yes 317.It debug.syncprt integer yes 318.It debug.busyprt integer yes 319.It debug.doclusterread integer yes 320.It debug.doclusterwrite integer yes 321.It debug.doreallocblks integer yes 322.It debug.doasyncfree integer yes 323.It debug.prtrealloc integer yes 324.It hw.machine string no 325.It hw.model string no 326.It hw.ncpu integer no 327.It hw.byteorder integer no 328.It hw.physmem integer no 329.It hw.usermem integer no 330.It hw.pagesize integer no 331.It hw.diskstats struct no 332.It hw.disknames string no 333.It hw.diskcount integer no 334.It hw.sensors struct no 335.It hw.cpuspeed integer no 336.It hw.setperf integer yes 337.It machdep.console_device dev_t no 338.It machdep.unaligned_print integer yes 339.It machdep.unaligned_fix integer yes 340.It machdep.unaligned_sigbus integer yes 341.It machdep.apmwarn integer yes 342.It machdep.apmhalt integer yes 343.It machdep.kbdreset integer yes 344.It machdep.userldt integer yes 345.It machdep.osxsfr integer no 346.It machdep.sse integer no 347.It machdep.sse2 integer no 348.It machdep.xcrypt integer no 349.It machdep.allowaperture integer yes 350.It machdep.led_blink integer yes 351.It machdep.ceccerrs integer no 352.It machdep.cecclast quad no 353.It machdep.apvreset integer yes 354.It user.cs_path string no 355.It user.bc_base_max integer no 356.It user.bc_dim_max integer no 357.It user.bc_scale_max integer no 358.It user.bc_string_max integer no 359.It user.coll_weights_max integer no 360.It user.expr_nest_max integer no 361.It user.line_max integer no 362.It user.re_dup_max integer no 363.It user.posix2_version integer no 364.It user.posix2_c_bind integer no 365.It user.posix2_c_dev integer no 366.It user.posix2_char_term integer no 367.It user.posix2_fort_dev integer no 368.It user.posix2_fort_run integer no 369.It user.posix2_localedef integer no 370.It user.posix2_sw_dev integer no 371.It user.posix2_upe integer no 372.It user.stream_max integer no 373.It user.tzname_max integer no 374.It ddb.radix integer yes 375.It ddb.max_width integer yes 376.It ddb.max_line integer yes 377.It ddb.tab_stop_width integer yes 378.It ddb.panic integer yes 379.It ddb.console integer yes 380.It ddb.log integer yes 381.It ddb.crash integer yes 382.It vfs.mounts.* struct no 383.It vfs.ffs.doclusterread integer yes 384.It vfs.ffs.doclusterwrite integer yes 385.It vfs.ffs.doreallocblks integer yes 386.It vfs.ffs.doasyncfree integer yes 387.It vfs.ffs.max_softdeps integer yes 388.It vfs.ffs.sd_tickdelay integer yes 389.It vfs.ffs.sd_worklist_push integer no 390.It vfs.ffs.sd_blk_limit_push integer no 391.It vfs.ffs.sd_ino_limit_push integer no 392.It vfs.ffs.sd_blk_limit_hit integer no 393.It vfs.ffs.sd_ino_limit_hit integer no 394.It vfs.ffs.sd_sync_limit_hit integer no 395.It vfs.ffs.sd_indir_blk_ptrs integer no 396.It vfs.ffs.sd_inode_bitmap integer no 397.It vfs.ffs.sd_direct_blk_ptrs integer no 398.It vfs.ffs.sd_dir_entry integer no 399.It vfs.ffs.dirhash_dirsize integer yes 400.It vfs.ffs.dirhash_maxmem integer yes 401.It vfs.ffs.dirhash_mem integer no 402.It vfs.nfs.iothreads integer yes 403.El 404.Pp 405The 406.Nm 407program can get or set debugging variables 408that have been identified for its display. 409This information can be obtained by using the command: 410.Pp 411.Dl $ sysctl debug 412.Pp 413In addition, 414.Nm 415can extract information about the filesystems that have been compiled 416into the running system. 417This information can be obtained by using the command: 418.Pp 419.Dl $ sysctl vfs.mounts 420.Pp 421By default, only filesystems that are actively being used are listed. 422Use of the 423.Fl A 424flag lists all the filesystems compiled into the running kernel. 425.Sh FILES 426.Bl -tag -width <uvm/uvm_swap_encrypt.h> -compact 427.It Aq Pa sys/sysctl.h 428definitions for top level identifiers, second level kernel and hardware 429identifiers, and user level identifiers 430.It Aq Pa dev/rndvar.h 431definitions for 432.Xr random 4 433device's statistics structure 434.It Aq Pa sys/socket.h 435definitions for second level network identifiers 436.It Aq Pa uvm/uvm_param.h 437definitions for second level virtual memory identifiers 438.It Aq Pa uvm/uvm_swap_encrypt.h 439definitions for third level virtual memory identifiers 440.It Aq Pa netinet/in.h 441definitions for third level IPv4/v6 identifiers and 442fourth level IPv4/v6 identifiers 443.It Aq Pa netinet/icmp_var.h 444definitions for fourth level ICMP identifiers 445.It Aq Pa netinet6/icmp6.h 446definitions for fourth level ICMPv6 identifiers 447.It Aq Pa netinet/tcp_var.h 448definitions for fourth level TCP identifiers 449.It Aq Pa netinet/udp_var.h 450definitions for fourth level UDP identifiers 451.It Aq Pa netipx/ipx_var.h 452definitions for third level IPX identifiers and 453fourth level IPX identifiers 454.It Aq Pa ddb/db_var.h 455definitions for second level ddb identifiers 456.It Aq Pa sys/mount.h 457definitions for second level vfs identifiers 458.It Aq Pa nfs/nfs.h 459definitions for third level NFS identifiers 460.It Aq Pa ufs/ffs/ffs_extern.h 461definitions for third level FFS identifiers 462.El 463.Sh EXAMPLES 464To retrieve the maximum number of processes allowed 465in the system: 466.Pp 467.Dl $ sysctl kern.maxproc 468.Pp 469To set the maximum number of processes allowed 470in the system to 1000: 471.Pp 472.Dl # sysctl kern.maxproc=1000 473.Pp 474To retrieve information about the system clock rate: 475.Pp 476.Dl $ sysctl kern.clockrate 477.Pp 478To retrieve information about the load average history: 479.Pp 480.Dl $ sysctl vm.loadavg 481.Pp 482To make the 483.Xr chown 2 484system call use traditional BSD semantics (don't clear setuid/setgid bits): 485.Pp 486.Dl # sysctl fs.posix.setuid=0 487.Pp 488To set the list of reserved TCP ports that should not be allocated 489by the kernel dynamically: 490.Pp 491.Dl # sysctl net.inet.tcp.baddynamic=749,750,751,760,761,871 492.Pp 493This can be used to keep daemons 494from stealing a specific port that another program needs to function. 495List elements may be separated by commas and/or whitespace. 496.Pp 497It is also possible to add or remove ports from the current list: 498.Bd -literal -offset indent 499# sysctl net.inet.tcp.baddynamic=+748 500# sysctl net.inet.tcp.baddynamic=-871 501.Ed 502.Pp 503To adjust the number of kernel 504.Nm nfsio 505threads used to service asynchronous 506I/O requests on an NFS client machine: 507.Pp 508.Dl # sysctl vfs.nfs.iothreads=4 509.Pp 510The default is 4; 20 is the maximum. 511See 512.Xr nfssvc 2 513and 514.Xr nfsd 8 515for further discussion. 516.Pp 517To set the amount of shared memory available in the system and 518the maximum number of shared memory segments: 519.Bd -literal -offset indent 520# sysctl kern.shminfo.shmmax=33554432 521# sysctl kern.shminfo.shmseg=32 522.Ed 523.Sh SEE ALSO 524.Xr sysctl 3 , 525.Xr sysctl.conf 5 526.Sh HISTORY 527.Nm sysctl 528first appeared in 529.Bx 4.4 . 530