]> git.saurik.com Git - apple/system_cmds.git/blobdiff - sysctl.tproj/sysctl.8
system_cmds-735.30.2.tar.gz
[apple/system_cmds.git] / sysctl.tproj / sysctl.8
index bc348a9d905176f8504ce8c2944a215c6727d73d..d421e7a1db4a1c5b8a0aa0dbd71de79651b1398a 100644 (file)
@@ -9,10 +9,6 @@
 .\" 2. Redistributions in binary form must reproduce the above copyright
 .\"    notice, this list of conditions and the following disclaimer in the
 .\"    documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\"    must display the following acknowledgement:
-.\"    This product includes software developed by the University of
-.\"    California, Berkeley and its contributors.
 .\" 4. Neither the name of the University nor the names of its contributors
 .\"    may be used to endorse or promote products derived from this software
 .\"    without specific prior written permission.
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\"    @(#)sysctl.8    8.2 (Berkeley) 5/9/95
+.\"    From: @(#)sysctl.8      8.1 (Berkeley) 6/6/93
+.\" $FreeBSD$
 .\"
-.Dd "May 9, 1995"
+.Dd January 17, 2011
 .Dt SYSCTL 8
 .Os
 .Sh NAME
 .Nm sysctl
 .Nd get or set kernel state
 .Sh SYNOPSIS
-.Nm sysctl
-.Op Fl n
-.Ar name ...
-.Nm sysctl
-.Op Fl n
-.Fl w
-.Ar name=value ...
-.Nm sysctl
-.Op Fl n
-.Fl aA
+.Nm
+.Op Fl bdehiNnoqx
+.Ar name Ns Op = Ns Ar value
+.Ar ...
+.Nm
+.Op Fl bdehNnoqx
+.Fl a
 .Sh DESCRIPTION
 The
-.Nm sysctl
-utility retrieves kernel state and allows processes with
-appropriate privilege to set kernel state.
+.Nm
+utility retrieves kernel state and allows processes with appropriate
+privilege to set kernel state.
 The state to be retrieved or set is described using a
-``Management Information Base'' (``MIB'') style name,
-described as a dotted set of components.
-The
-.Fl a
-flag can be used to list all the currently available string or integer values.
-The
-.Fl A
-flag will list all the known MIB names including tables.
-Those with string or integer values will be printed as with the
-.Fl a
-flag; for the table values,
-the name of the utility to retrieve them is given.
+.Dq Management Information Base
+.Pq Dq MIB
+style name, described as a dotted set of
+components.
 .Pp
-The
+The following options are available:
+.Bl -tag -width indent
+.It Fl A
+Equivalent to
+.Fl o a
+(for compatibility).
+.It Fl a
+List all the currently available non-opaque values.
+This option is ignored if one or more variable names are specified on
+the command line.
+.It Fl b
+Force the value of the variable(s) to be output in raw, binary format.
+No names are printed and no terminating newlines are output.
+This is mostly useful with a single variable.
+.It Fl d
+Print the description of the variable instead of its value.
+.It Fl e
+Separate the name and the value of the variable(s) with
+.Ql = .
+This is useful for producing output which can be fed back to the
+.Nm
+utility.
+This option is ignored if either
+.Fl N
+or
 .Fl n
-flag specifies that the printing of the field name should be
-suppressed and that only its value should be output.
-This flag is useful for setting shell variables.
-For example, to save the pagesize in variable psize, use:
-.Bd -literal -offset indent -compact
-set psize=`sysctl -n hw.pagesize`
+is specified, or a variable is being set.
+.It Fl h
+Format output for human, rather than machine, readability.
+.It Fl i
+Ignore unknown OIDs.
+The purpose is to make use of
+.Nm
+for collecting data from a variety of machines (not all of which
+are necessarily running exactly the same software) easier.
+.It Fl N
+Show only variable names, not their values.
+This is particularly useful with shells that offer programmable
+completion.
+To enable completion of variable names in
+.Xr zsh 1 Pq Pa ports/shells/zsh ,
+use the following code:
+.Bd -literal -offset indent
+listsysctls () { set -A reply $(sysctl -AN ${1%.*}) }
+compctl -K listsysctls sysctl
 .Ed
 .Pp
-If just a MIB style name is given,
-the corresponding value is retrieved.
-If a value is to be set, the
-.Fl w
-flag must be specified and the MIB name followed
-by an equal sign and the new value to be used.
+To enable completion of variable names in
+.Xr tcsh 1 ,
+use:
+.Pp
+.Dl "complete sysctl 'n/*/`sysctl -Na`/'"
+.It Fl n
+Show only variable values, not their names.
+This option is useful for setting shell variables.
+For instance, to save the pagesize in variable
+.Va psize ,
+use:
+.Pp
+.Dl "set psize=`sysctl -n hw.pagesize`"
+.It Fl o
+Show opaque variables (which are normally suppressed).
+The format and length are printed, as well as a hex dump of the first
+sixteen bytes of the value.
+.It Fl q
+Suppress some warnings generated by
+.Nm
+to standard error.
+.It Fl X
+Equivalent to
+.Fl x a
+(for compatibility).
+.It Fl x
+As
+.Fl o ,
+but prints a hex dump of the entire value instead of just the first
+few bytes.
+.El
 .Pp
 The information available from
-.Nm sysctl
-consists of integers, strings, and tables.
-The tabular information can only be retrieved by special
+.Nm
+consists of integers, strings, and opaque types.
+The
+.Nm
+utility
+only knows about a couple of opaque types, and will resort to hexdumps
+for the rest.
+The opaque information is much more useful if retrieved by special
 purpose programs such as
-.Nm ps ,
-.Nm systat ,
+.Xr ps 1 ,
+.Xr systat 1 ,
 and
-.Nm netstat .
-The string and integer information is summaried below.
+.Xr netstat 1 .
+.Pp
+.\" Some of the variables which cannot be modified during normal system
+.\" operation can be initialized via
+.\" .Xr loader 8
+.\" tunables.
+.\" This can for example be done by setting them in
+.\" .Xr loader.conf 5 .
+.\" Please refer to
+.\" .Xr loader.conf 5
+.\" for more information on which tunables are available and how to set them.
+.\" .Pp
+The string and integer information is summarized below.
 For a detailed description of these variable see
 .Xr sysctl 3 .
+.Pp
 The changeable column indicates whether a process with appropriate
 privilege can change the value.
-.Bl -column net.inet.ip.forwardingxxxxxx integerxxx
-.It Sy Name    Type    Changeable
-.It kern.ostype        string  no
-.It kern.osrelease     string  no
-.It kern.osrevision    integer no
-.It kern.version       string  no
-.It kern.maxvnodes     integer yes
-.It kern.maxproc       integer yes
-.It kern.maxfiles      integer yes
-.It kern.argmax        integer no
-.It kern.securelevel   integer raise only
-.It kern.hostname      string  yes
-.It kern.hostid        integer yes
-.It kern.clockrate     struct  no
-.It kern.posix1version integer no
-.It kern.ngroups       integer no
-.It kern.job_control   integer no
-.It kern.saved_ids     integer no
-.It kern.link_max      integer no
-.It kern.max_canon     integer no
-.It kern.max_input     integer no
-.It kern.name_max      integer no
-.It kern.path_max      integer no
-.It kern.pipe_buf      integer no
-.It kern.chown_restricted      integer no
-.It kern.no_trunc      integer no
-.It kern.vdisable      integer no
-.It kern.boottime      struct  no
-.It vm.loadavg struct  no
-.It machdep.console_device     dev_t   no
-.It net.inet.ip.forwarding     integer yes
-.It net.inet.ip.redirect       integer yes
-.It net.inet.ip.ttl    integer yes
-.It net.inet.icmp.maskrepl     integer yes
-.It net.inet.udp.checksum      integer yes
-.It hw.machine string  no
-.It hw.model   string  no
-.It hw.ncpu    integer no
-.It hw.byteorder       integer no
-.It hw.physmem integer no
-.It hw.usermem integer no
-.It hw.pagesize        integer no
-.It user.cs_path       string  no
-.It user.bc_base_max   integer no
-.It user.bc_dim_max    integer no
-.It user.bc_scale_max  integer no
-.It user.bc_string_max integer no
-.It user.coll_weights_max      integer no
-.It user.expr_nest_max integer no
-.It user.line_max      integer no
-.It user.re_dup_max    integer no
-.It user.posix2_version        integer no
-.It user.posix2_c_bind integer no
-.It user.posix2_c_dev  integer no
-.It user.posix2_char_term      integer no
-.It user.posix2_fort_dev       integer no
-.It user.posix2_fort_run       integer no
-.It user.posix2_localedef      integer no
-.It user.posix2_sw_dev integer no
-.It user.posix2_upe    integer no
+String and integer values can be set using
+.Nm .
+.Bl -column xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx integerxxx
+.It Sy "Name   Type    Changeable"
+.It "hw.activecpu      integer no"
+.It "hw.busfrequency   integer no"
+.It "hw.busfrequency_max       integer no"
+.It "hw.busfrequency_min       integer no"
+.It "hw.byteorder      integer no"
+.It "hw.cacheconfig    struct  no"
+.It "hw.cachelinesize  integer no"
+.It "hw.cachesize      struct  no"
+.It "hw.cpu64bit_capable       integer no"
+.It "hw.cpufamily      integer no"
+.It "hw.cpufrequency   integer no"
+.It "hw.cpufrequency_max       integer no"
+.It "hw.cpufrequency_min       integer no"
+.It "hw.cpusubtype     integer no"
+.It "hw.cputhreadtype  integer no"
+.It "hw.cputype        integer no"
+.It "hw.l1dcachesize   integer no"
+.It "hw.l1icachesize   integer no"
+.It "hw.l2cachesize    integer no"
+.It "hw.l3cachesize    integer no"
+.It "hw.logicalcpu     integer no"
+.It "hw.logicalcpu_max integer no"
+.It "hw.memsize        integer no"
+.It "hw.ncpu   integer no"
+.It "hw.packages       integer no"
+.It "hw.pagesize       integer no"
+.It "hw.physicalcpu    integer no"
+.It "hw.physicalcpu_max        integer no"
+.It "hw.tbfrequency    integer no"
+.It "kern.argmax       integer no"
+.It "kern.bootargs     string  no"
+.It "kern.boottime     struct  no"
+.It "kern.clockrate    struct  no"
+.It "kern.coredump     integer yes"
+.It "kern.corefile     string  yes"
+.It "kern.flush_cache_on_write integer yes"
+.It "kern.hostid       integer yes"
+.It "kern.hostname     string  yes"
+.It "kern.job_control  integer no"
+.It "kern.maxfiles     integer yes"
+.It "kern.maxfilesperproc      integer yes"
+.It "kern.maxnbuf      integer yes"
+.It "kern.maxproc      integer yes"
+.It "kern.maxprocperuid        integer yes"
+.It "kern.maxvnodes    integer yes"
+.It "kern.msgbuf       integer yes"
+.It "kern.nbuf integer no"
+.It "kern.netboot      integer no"
+.It "kern.ngroups      integer no"
+.It "kern.nisdomainname        string  yes"
+.It "kern.num_files    integer no"
+.It "kern.num_tasks    integer no"
+.It "kern.num_taskthreads      integer no"
+.It "kern.num_threads  integer no"
+.It "kern.num_vnodes   integer no"
+.It "kern.nx   integer yes"
+.It "kern.osrelease    string  no"
+.It "kern.osrevision   integer no"
+.It "kern.ostype       string  no"
+.It "kern.osversion    string  yes"
+.It "kern.posix1version        integer no"
+.It "kern.procname     string  yes"
+.It "kern.safeboot     integer no"
+.It "kern.saved_ids    integer no"
+.It "kern.secure_kernel        integer no"
+.It "kern.securelevel  integer yes"
+.It "kern.singleuser   integer no"
+.It "kern.sleeptime    struct  no"
+.It "kern.slide        integer no"
+.It "kern.stack_depth_max      integer no"
+.It "kern.stack_size   integer no"
+.It "kern.sugid_coredump       integer yes"
+.It "kern.sugid_scripts        integer yes"
+.It "kern.symfile      string  no"
+.It "kern.usrstack     integer no"
+.It "kern.usrstack64   integer no"
+.It "kern.uuid string  no"
+.It "kern.version      string  no"
+.It "kern.waketime     struct  no"
+.It "machdep.cpu.address_bits.physical integer no"
+.It "machdep.cpu.address_bits.virtual  integer no"
+.It "machdep.cpu.brand integer no"
+.It "machdep.cpu.brand_string  string  no"
+.It "machdep.cpu.cache.L2_associativity        integer no"
+.It "machdep.cpu.cache.linesize        integer no"
+.It "machdep.cpu.cache.size    integer no"
+.It "machdep.cpu.core_count    integer no"
+.It "machdep.cpu.cores_per_package     integer no"
+.It "machdep.cpu.extfamily     integer no"
+.It "machdep.cpu.extfeature_bits       integer no"
+.It "machdep.cpu.extfeatures   string  no"
+.It "machdep.cpu.extmodel      integer no"
+.It "machdep.cpu.family        integer no"
+.It "machdep.cpu.feature_bits  integer no"
+.It "machdep.cpu.features      string  no"
+.It "machdep.cpu.leaf7_feature_bits    integer no"
+.It "machdep.cpu.leaf7_features        string  no"
+.It "machdep.cpu.logical_per_package   integer no"
+.It "machdep.cpu.max_basic     integer no"
+.It "machdep.cpu.max_ext       integer no"
+.It "machdep.cpu.microcode_version     integer no"
+.It "machdep.cpu.model integer no"
+.It "machdep.cpu.processor_flag        integer no"
+.It "machdep.cpu.signature     integer no"
+.It "machdep.cpu.stepping      integer no"
+.It "machdep.cpu.thread_count  integer no"
+.It "machdep.cpu.tlb.data.large        integer no"
+.It "machdep.cpu.tlb.data.large_level1 integer no"
+.It "machdep.cpu.tlb.data.small        integer no"
+.It "machdep.cpu.tlb.data.small_level1 integer no"
+.It "machdep.cpu.tlb.inst.large        integer no"
+.It "machdep.cpu.tlb.inst.small        integer no"
+.It "machdep.cpu.tlb.shared    integer no"
+.It "machdep.cpu.ucupdate      integer yes"
+.It "machdep.cpu.vendor        string  no"
+.It "machdep.cpu.xsave.extended_state  integer no"
+.It "machdep.tsc.deep_idle_rebase      integer yes"
+.It "machdep.tsc.frequency     integer no"
+.It "machdep.tsc.nanotime.generation   integer no"
+.It "machdep.tsc.nanotime.shift        integer no"
+.It "net.inet.ip.forwarding    integer yes"
+.It "net.inet.ip.portrange.first       integer yes"
+.It "net.inet.ip.portrange.hifirst     integer yes"
+.It "net.inet.ip.portrange.hilast      integer yes"
+.It "net.inet.ip.portrange.last        integer yes"
+.It "net.inet.ip.portrange.lowfirst    integer yes"
+.It "net.inet.ip.portrange.lowlast     integer yes"
+.It "net.inet.ip.redirect      integer yes"
+.It "net.inet.ip.ttl   integer yes"
+.It "net.inet.udp.checksum     integer yes"
+.It "net.inet.udp.maxdgram     integer yes"
+.It "vm.loadavg        struct  no"
+.It "vm.swapusage      struct  no"
+.It "user.bc_base_max  integer no"
+.It "user.bc_dim_max   integer no"
+.It "user.bc_scale_max integer no"
+.It "user.bc_string_max        integer no"
+.It "user.coll_weights_max     integer no"
+.It "user.cs_path      string  no"
+.It "user.expr_nest_max        integer no"
+.It "user.line_max     integer no"
+.It "user.posix2_c_bind        integer no"
+.It "user.posix2_c_dev integer no"
+.It "user.posix2_char_term     integer no"
+.It "user.posix2_fort_dev      integer no"
+.It "user.posix2_fort_run      integer no"
+.It "user.posix2_localedef     integer no"
+.It "user.posix2_sw_dev        integer no"
+.It "user.posix2_upe   integer no"
+.It "user.posix2_version       integer no"
+.It "user.re_dup_max   integer no"
+.It "user.stream_max   integer no"
+.It "user.tzname_max   integer no"
 .El
-.Pp
-The
-.Nm sysctl
-program can get or set debugging variables
-that have been identified for its display.
-This information can be obtained by using the command:
-.Bd -literal -offset indent
-sysctl debug
-.Ed
-In addition,
-.Nm sysctl
-can extract information about the filesystems that have been compiled
-into the running system.
-This information can be obtained by using the command:
-.Bd -literal -offset indent
-sysctl vfs
-.Ed
-By default, only filesystems that are actively being used are listed.
-Use of the
-.Fl A
-flag lists all the filesystems compiled into the running kernel.
-.Sh EXAMPLES
-.Pp
-For example, to retrieve the maximum number of processes allowed
-in the system, one would use the follow request:
-.Bd -literal -offset indent -compact
-sysctl kern.maxproc
-.Ed
-.Pp
-To set the maximum number of processes allowed
-in the system to 1000, one would use the follow request:
-.Bd -literal -offset indent -compact
-sysctl -w kern.maxproc=1000
-.Ed
-.Pp
-Information about the system clock rate may be obtained with:
-.Bd -literal -offset indent -compact
-sysctl kern.clockrate
-.Ed
-.Pp
-Information about the load average history may be obtained with
-.Bd -literal -offset indent -compact
-sysctl vm.loadavg
-.Ed
 .Sh FILES
-.Bl -tag -width <netinet/icmpXvar.h> -compact
-.It Pa <sys/sysctl.h>
+.Bl -tag -width ".In netinet/icmp_var.h" -compact
+.It In sys/sysctl.h
 definitions for top level identifiers, second level kernel and hardware
 identifiers, and user level identifiers
-.It Pa <sys/socket.h>
+.It In sys/socket.h
 definitions for second level network identifiers
-.It Pa <sys/gmon.h>
+.It In sys/gmon.h
 definitions for third level profiling identifiers
-.It Pa <vm/vm_param.h>
+.It In vm/vm_param.h
 definitions for second level virtual memory identifiers
-.It Pa <netinet/in.h>
+.It In netinet/in.h
 definitions for third level Internet identifiers and
 fourth level IP identifiers
-.It Pa <netinet/icmp_var.h>
+.It In netinet/icmp_var.h
 definitions for fourth level ICMP identifiers
-.It Pa <netinet/udp_var.h>
+.It In netinet/udp_var.h
 definitions for fourth level UDP identifiers
 .El
+.Sh EXAMPLES
+For example, to retrieve the maximum number of processes allowed
+in the system, one would use the following request:
+.Pp
+.Dl "sysctl kern.maxproc"
+.Pp
+To set the maximum number of processes allowed
+per uid to 1000, one would use the following request:
+.Pp
+.Dl "sysctl kern.maxprocperuid=1000"
+.Pp
+Information about the system clock rate may be obtained with:
+.Pp
+.Dl "sysctl kern.clockrate"
+.Pp
+Information about the load average history may be obtained with:
+.Pp
+.Dl "sysctl vm.loadavg"
+.Pp
+More variables than these exist, and the best and likely only place
+to search for their deeper meaning is undoubtedly the source where
+they are defined.
+.Sh COMPATIBILITY
+The
+.Fl w
+option has been deprecated and is silently ignored.
 .Sh SEE ALSO
-.Xr sysctl 3
+.Xr sysctl 3 ,
+.\" .Xr loader.conf 5 ,
+.Xr sysctl.conf 5
+.\" .Xr loader 8
 .Sh HISTORY
-.Nm sysctl
-first appeared in 4.4BSD.
+A
+.Nm
+utility first appeared in
+.Bx 4.4 .
+.Pp
+In
+.Fx 2.2 ,
+.Nm
+was significantly remodeled.
+.\" .Sh BUGS
+.\" The
+.\" .Nm
+.\" utility presently exploits an undocumented interface to the kernel
+.\" sysctl facility to traverse the sysctl tree and to retrieve format
+.\" and name information.
+.\" This correct interface is being thought about for the time being.