xref: /netbsd-src/sbin/sysctl/sysctl.8 (revision 0dd5877adce57db949b16ae963e5a6831cccdfb6)
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