xref: /netbsd-src/sbin/sysctl/sysctl.8 (revision 481fca6e59249d8ffcf24fef7cfbe7b131bfb080)
1.\"	$NetBSD: sysctl.8,v 1.50 2000/07/10 09:34:38 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=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 ``#'') are ignored.  Line continuations with
100``\\'' are permitted.  Remaining lines are processed similarly to
101command line arguments of the form
102.Ar name
103or
104.Ar name=value .
105The
106.Fl w
107flag is implied by
108.Fl f .
109.Pp
110The proc top-level MIB has a special semantic: it represent per-process values
111and as such may differ from one process to another. The second-level name
112is the pid of the process (in decimal form), or the special word 'curproc'.
113For variables below 'proc.<pid>.rlimit', the integer value may be remplaced
114with the string 'unlimited' if it matches the magic value used to disable
115a limit.
116.Pp
117The information available from
118.Nm sysctl
119consists of integers, strings, and tables.
120The tabular information can only be retrieved by special
121purpose programs such as
122.Nm ps ,
123.Nm systat ,
124and
125.Nm netstat .
126The string and integer information is summarized below.
127For a detailed description of these variable see
128.Xr sysctl 3 .
129The changeable column indicates whether a process with appropriate
130privilege can change the value.
131.Bl -column proc.<pid>.rlimit.coredumpsize.hardxxxxxx integerxxx
132.It Sy Name	Type	Changeable
133.It ddb.fromconsole	integer 	yes
134.It ddb.lines	integer		yes
135.It ddb.maxoff	integer 	yes
136.It ddb.maxwidth	integer		yes
137.It ddb.onpanic	integer		yes
138.It ddb.radix	integer		yes
139.It ddb.tabstops	integer		yes
140.It hw.alignbytes	integer	no
141.It hw.byteorder	integer	no
142.\".It hw.disknames	struct	no
143.\".It hw.diskstats	struct	no
144.It hw.machine	string	no
145.It hw.machine_arch	string	no
146.It hw.model	string	no
147.It hw.ncpu	integer	no
148.It hw.pagesize	integer	no
149.It hw.physmem	integer	no
150.It hw.usermem	integer	no
151.It kern.argmax	integer	no
152.It kern.autonicetime	integer	yes
153.It kern.autoniceval	integer	yes
154.It kern.boottime	struct	no
155.It kern.chown_restricted	integer	no
156.It kern.clockrate	struct	no
157.It kern.defcorename	string	yes
158.It kern.fsync	integer	no
159.It kern.hostid	integer	yes
160.It kern.hostname	string	yes
161.It kern.iov_max	integer	no
162.It kern.job_control	integer	no
163.It kern.link_max	integer	no
164.It kern.logsigexit	integer	yes
165.It kern.max_canon	integer	no
166.It kern.max_input	integer	no
167.It kern.maxfiles	integer	yes
168.It kern.maxpartitions	integer	no
169.It kern.maxproc	integer	yes
170.It kern.maxvnodes	integer	yes
171.It kern.mbuf.mblowat	integer	yes
172.It kern.mbuf.mcllowat	integer	yes
173.It kern.mbuf.mclsize	integer	no
174.It kern.mbuf.msize	integer	no
175.It kern.mbuf.nmbclusters	integer	raise only
176.It kern.msgbufsize	integer	no
177.It kern.name_max	integer	no
178.It kern.ngroups	integer	no
179.It kern.no_trunc	integer	no
180.It kern.osrelease	string	no
181.It kern.osrevision	integer	no
182.It kern.ostype	string	no
183.It kern.path_max	integer	no
184.It kern.pipe_buf	integer	no
185.It kern.posix1version	integer	no
186.It kern.rawpartition	integer	no
187.It kern.saved_ids	integer	no
188.It kern.securelevel	integer	raise only
189.It kern.synchronized_io	integer	no
190.It kern.sysvmsg	integer	no
191.It kern.sysvsem	integer	no
192.It kern.sysvshm	integer	no
193.It kern.vdisable	integer	no
194.It kern.version	string	no
195.It machdep.console_device	dev_t	no
196.It net.inet.icmp.errratelimit	integer	yes
197.It net.inet.icmp.maskrepl	integer	yes
198.It net.inet.icmp.errppslimit	integer	yes
199.It net.inet.ip.allowsrcrt	integer	yes
200.It net.inet.ip.anonportmax	integer	yes
201.It net.inet.ip.anonportmin	integer	yes
202.It net.inet.ip.directed-broadcast	integer		yes
203.It net.inet.ip.forwarding	integer	yes
204.It net.inet.ip.forwsrcrt	integer	yes
205.It net.inet.ip.mtudisc	integer	yes
206.It net.inet.ip.mtudisctimeout	integer	yes
207.It net.inet.ip.redirect	integer	yes
208.It net.inet.ip.subnetsarelocal	integer	yes
209.It net.inet.ip.ttl	integer	yes
210.It net.inet.ipsec.ah_cleartos	integer	yes
211.It net.inet.ipsec.ah_net_deflev	integer	yes
212.It net.inet.ipsec.ah_offsetmask	integer	yes
213.It net.inet.ipsec.ah_trans_deflev	integer	yes
214.It net.inet.ipsec.def_policy	integer	yes
215.It net.inet.ipsec.dfbit	integer	yes
216.It net.inet.ipsec.ecn	integer	yes
217.It net.inet.ipsec.esp_net_deflev	integer	yes
218.It net.inet.ipsec.esp_trans_deflev	integer	yes
219.It net.inet.ipsec.inbound_call_ike	integer	yes
220.It net.inet.tcp.ack_on_push	integer	yes
221.It net.inet.tcp.compat_42	integer	yes
222.It net.inet.tcp.cwm	integer	yes
223.It net.inet.tcp.cwm_burstsize	integer	yes
224.It net.inet.tcp.init_win	integer	yes
225.It net.inet.tcp.init_win	integer	yes
226.It net.inet.tcp.keepcnt	integer	yes
227.It net.inet.tcp.keepidle	integer	yes
228.It net.inet.tcp.keepintvl	integer	yes
229.It net.inet.tcp.log_refused	integer	yes
230.It net.inet.tcp.mss_ifmtu	integer	yes
231.It net.inet.tcp.mssdflt	integer	yes
232.It net.inet.tcp.recvspace	integer	yes
233.It net.inet.tcp.rfc1323	integer	yes
234.It net.inet.tcp.rstratelimit	integer	yes
235.It net.inet.tcp.sack	integer	yes
236.It net.inet.tcp.sendspace	integer	yes
237.It net.inet.tcp.slowhz	integer	no
238.It net.inet.tcp.syn_bucket_limit	integer	yes
239.It net.inet.tcp.syn_cache_interval	integer	yes
240.It net.inet.tcp.syn_cache_limit	integer	yes
241.It net.inet.tcp.timestamps	integer	yes
242.It net.inet.tcp.win_scale	integer	yes
243.It net.inet.udp.checksum	integer	yes
244.It net.inet.udp.recvspace	integer	yes
245.It net.inet.udp.sendspace	integer	yes
246.It net.inet6.icmp6.errratelimit	integer	yes
247.It net.inet6.icmp6.errppslimit	integer	yes
248.It net.inet6.icmp6.nd6_delay	integer	yes
249.It net.inet6.icmp6.nd6_maxnudhint	integer	yes
250.It net.inet6.icmp6.nd6_mmaxtries	integer	yes
251.It net.inet6.icmp6.nd6_prune	integer	yes
252.It net.inet6.icmp6.nd6_umaxtries	integer	yes
253.It net.inet6.icmp6.nd6_useloopback	integer	yes
254.It net.inet6.icmp6.nodeinfo	integer	yes
255.It net.inet6.icmp6.rediraccept	integer	yes
256.It net.inet6.icmp6.redirtimeout	integer	yes
257.It net.inet6.ip6.accept_rtadv	integer	yes
258.It net.inet6.ip6.auto_flowlabel	integer	yes
259.It net.inet6.ip6.bindv6only	integer	yes
260.It net.inet6.ip6.dad_count	integer	yes
261.It net.inet6.ip6.defmcasthlim	integer	yes
262.It net.inet6.ip6.forwarding	integer	yes
263.It net.inet6.ip6.gif_hlim	integer	yes
264.It net.inet6.ip6.hdrnestlimit	integer	yes
265.It net.inet6.ip6.hlim	integer	yes
266.It net.inet6.ip6.kame_version	string	no
267.It net.inet6.ip6.keepfaith	integer	yes
268.It net.inet6.ip6.log_interval	integer	yes
269.It net.inet6.ip6.maxfragpackets	integer	yes
270.It net.inet6.ip6.redirect	integer	yes
271.It net.inet6.ip6.rr_prune	integer	yes
272.It net.inet6.ip6.use_deprecated	integer	yes
273.It net.inet6.ipsec6.ah_net_deflev	integer	yes
274.It net.inet6.ipsec6.ah_trans_deflev	integer	yes
275.It net.inet6.ipsec6.def_policy	integer	yes
276.It net.inet6.ipsec6.ecn	integer	yes
277.It net.inet6.ipsec6.esp_net_deflev	integer	yes
278.It net.inet6.ipsec6.esp_trans_deflev	integer	yes
279.It net.inet6.ipsec6.inbound_call_ike	integer	yes
280.It net.inet6.udp6.recvspace	integer	yes
281.It net.inet6.udp6.sendspace	integer	yes
282.It net.key.acq_exp_int	integer	yes
283.It net.key.acq_maxtime	integer	yes
284.It net.key.debug	integer	yes
285.It net.key.kill_int	integer	yes
286.It net.key.random_int	integer	yes
287.It net.key.spi_max_value	integer	yes
288.It net.key.spi_min_value	integer	yes
289.It net.key.spi_try	integer	yes
290.It proc.<pid>.corename	string	yes
291.It proc.<pid>.rlimit.coredumpsize.hard	integer	yes
292.It proc.<pid>.rlimit.coredumpsize.soft	integer	yes
293.It proc.<pid>.rlimit.cputime.hard	integer	yes
294.It proc.<pid>.rlimit.cputime.soft	integer	yes
295.It proc.<pid>.rlimit.datasize.hard	integer	yes
296.It proc.<pid>.rlimit.datasize.soft	integer	yes
297.It proc.<pid>.rlimit.filesize.hard	integer	yes
298.It proc.<pid>.rlimit.filesize.soft	integer	yes
299.It proc.<pid>.rlimit.maxproc.hard	integer	yes
300.It proc.<pid>.rlimit.maxproc.soft	integer	yes
301.It proc.<pid>.rlimit.memorylocked.hard	integer	yes
302.It proc.<pid>.rlimit.memorylocked.soft	integer	yes
303.It proc.<pid>.rlimit.memoryuse.hard	integer	yes
304.It proc.<pid>.rlimit.memoryuse.soft	integer	yes
305.It proc.<pid>.rlimit.stacksize.hard	integer	yes
306.It proc.<pid>.rlimit.stacksize.soft	integer	yes
307.It user.bc_base_max	integer	no
308.It user.bc_dim_max	integer	no
309.It user.bc_scale_max	integer	no
310.It user.bc_string_max	integer	no
311.It user.coll_weights_max	integer	no
312.It user.cs_path	string	no
313.It user.expr_nest_max	integer	no
314.It user.line_max	integer	no
315.It user.posix2_c_bind	integer	no
316.It user.posix2_c_dev	integer	no
317.It user.posix2_char_term	integer	no
318.It user.posix2_fort_dev	integer	no
319.It user.posix2_fort_run	integer	no
320.It user.posix2_localedef	integer	no
321.It user.posix2_sw_dev	integer	no
322.It user.posix2_upe	integer	no
323.It user.posix2_version	integer	no
324.It user.re_dup_max	integer	no
325.It vfs.generic.usermount	integer	yes
326.It vm.loadavg	struct	no
327.El
328.Sh EXAMPLES
329.Pp
330For example, to retrieve the maximum number of processes allowed
331in the system, one would use the following request:
332.Bd -literal -offset indent -compact
333sysctl kern.maxproc
334.Ed
335.Pp
336To set the maximum number of processes allowed
337in the system to 1000, one would use the following request:
338.Bd -literal -offset indent -compact
339sysctl -w kern.maxproc=1000
340.Ed
341.Pp
342Information about the system clock rate may be obtained with:
343.Bd -literal -offset indent -compact
344sysctl kern.clockrate
345.Ed
346.Pp
347Information about the load average history may be obtained with:
348.Bd -literal -offset indent -compact
349sysctl vm.loadavg
350.Ed
351.Pp
352To view the values of the per-process variables of the current shell,
353the request:
354.Bd -literal -offset indent -compact
355sysctl proc.$$
356.Ed
357can be used if the shell interpreter replaces $$ with it's pid (this is true
358for most shells).
359.Pp
360To redirect core dumps to the /var/tmp/<username> directory,
361.Bd -literal -offset indent -compact
362sysctl -w proc.$$.corename=/var/tmp/%u/%n.core
363.Ed
364Shall be used.
365.Bd -literal -offset indent -compact
366sysctl -w proc.curproc.corename=/var/tmp/%u/%n.core
367.Ed
368changes the value for the sysctl process itself, and will not have the desired
369effect.
370
371.Sh FILES
372.Bl -tag -width <netinet6/udp6Xvar.h> -compact
373.It Pa <sys/sysctl.h>
374definitions for top level identifiers, second level kernel and hardware
375identifiers, and user level identifiers
376.It Pa <sys/socket.h>
377definitions for second level network identifiers
378.It Pa <sys/gmon.h>
379definitions for third level profiling identifiers
380.It Pa <uvm/uvm_param.h>
381definitions for second level virtual memory identifiers
382.It Pa <netinet/in.h>
383definitions for third level IPv4/v6 identifiers and
384fourth level IPv4/v6 identifiers
385.It Pa <netinet/icmp_var.h>
386definitions for fourth level ICMP identifiers
387.It Pa <netinet/icmp6.h>
388definitions for fourth level ICMPv6 identifiers
389.It Pa <netinet/tcp_var.h>
390definitions for fourth level TCP identifiers
391.It Pa <netinet/udp_var.h>
392definitions for fourth level UDP identifiers
393.It Pa <netinet6/udp6_var.h>
394definitions for fourth level IPv6 UDP identifiers
395.It Pa <netinet6/ipsec.h>
396definitions for fourth level IPsec identifiers
397.El
398.Sh SEE ALSO
399.Xr sysctl 3
400.Sh HISTORY
401.Nm sysctl
402first appeared in
403.Bx 4.4 .
404