diff options
Diffstat (limited to 'usr.bin/limits/limits.1')
-rw-r--r-- | usr.bin/limits/limits.1 | 412 |
1 files changed, 412 insertions, 0 deletions
diff --git a/usr.bin/limits/limits.1 b/usr.bin/limits/limits.1 new file mode 100644 index 0000000..3ec4845 --- /dev/null +++ b/usr.bin/limits/limits.1 @@ -0,0 +1,412 @@ +.\" Copyright (c) 1996 David Nugent <davidn@blaze.net.au> +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, is permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice immediately at the beginning of the file, without modification, +.\" this list of conditions, and the following disclaimer. +.\" 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. This work was done expressly for inclusion into FreeBSD. Other use +.\" is permitted provided this notation is included. +.\" 4. Absolutely no warranty of function or purpose is made by the author +.\" David Nugent. +.\" 5. Modifications may be freely made to this file providing the above +.\" conditions are met. +.\" +.\" $FreeBSD$ +.\" +.Dd January 23, 2011 +.Dt LIMITS 1 +.Os +.Sh NAME +.Nm limits +.Nd set or display process resource limits +.Sh SYNOPSIS +.Nm +.Op Fl C Ar class | Fl P Ar pid | Fl U Ar user +.Op Fl SHB +.Op Fl ea +.Op Fl bcdflmnstuvpw Op Ar val +.Nm +.Op Fl C Ar class | Fl U Ar user +.Op Fl SHB +.Op Fl bcdflmnstuvpw Op Ar val +.Op Fl E +.Oo +.Op Ar name Ns = Ns Ar value ... +.Ar command +.Oc +.Sh DESCRIPTION +The +.Nm +utility either prints or sets kernel resource limits, and may optionally set +environment variables like +.Xr env 1 +and run a program with the selected resources. +Three uses of the +.Nm +utility are possible: +.Bl -tag -width indent +.It Xo +.Nm +.Op Ar limitflags +.Op Ar name Ns = Ns Ar value ... +.Ar command +.Xc +This usage sets limits according to +.Ar limitflags , +optionally sets environment variables given as +.Ar name Ns = Ns Ar value +pairs, and then runs the specified +.Ar command . +.It Nm Op Ar limitflags +This usage determines values of resource settings according to +.Ar limitflags , +does not attempt to set them and outputs these values to +standard output. +By default, this will output the current kernel resource settings +active for the calling process. +Using the +.Fl C Ar class +or +.Fl U Ar user +options, you may also display the current resource settings modified +by the appropriate login class resource limit entries from +the +.Xr login.conf 5 +login capabilities database. +.It Nm Fl e Op Ar limitflags +This usage determines values of resource settings according to +.Ar limitflags , +but does not set them itself. +Like the previous usage, it outputs these values to standard +output, except that it will emit them in +.Ic eval +format, suitable for the calling shell. +The calling shell is determined by examining the entries in the +.Pa /proc +file system for the parent process. +If the shell is known (i.e., it is one of +.Nm sh , csh , bash , tcsh , ksh , pdksh +or +.Nm rc ) , +.Nm +emits +.Ic limit +or +.Ic ulimit +commands in the format understood by +that shell. +If the name of the shell cannot be determined, then the +.Ic ulimit +format used by +.Xr sh 1 +is used. +.Pp +This is very useful for setting limits used by scripts, or prior +launching of daemons and other background tasks with specific +resource limit settings, and provides the benefit of allowing +global configuration of maximum resource usage by maintaining a +central database of settings in the login class database. +.Pp +Within a shell script, +.Nm +will normally be used with eval within backticks as follows: +.Pp +.Dl "eval `limits -e -C daemon`" +.Pp +which causes the output of +.Nm +to be evaluated and set by the current shell. +.El +.Pp +The value of +.Ar limitflags +specified in the above contains one or more of the following options: +.Bl -tag -width ".Fl C Ar class" +.It Fl C Ar class +Use current resource values, modified by the resource entries applicable +for the login class +.Ar class . +.It Fl U Ar user +Use current resource values, modified by the resource entries applicable +to the login class the +.Ar user +belongs to. +If user does not belong to any class, then the resource capabilities +for the +.Dq Li default +class are used, if it exists, or the +.Dq Li root +class if the user is a superuser account. +.It Fl P Ar pid +Select or set limits for the process identified by the +.Ar pid . +.It Fl S +Select display or setting of +.Dq soft +(or current) resource limits. +If specific limits settings follow this switch, only soft limits are +affected unless overridden later with either the +.Fl H +or +.Fl B +options. +.It Fl H +Select display or setting of +.Dq hard +(or maximum) resource limits. +If specific limits settings follow this switch, only hard limits are +affected until overridden later with either the +.Fl S +or +.Fl B +options. +.It Fl B +Select display or setting of both +.Dq soft +(current) or +.Dq hard +(maximum) +resource limits. +If specific limits settings follow this switch, both soft and hard +limits are affected until overridden later with either the +.Fl S +or +.Fl H +options. +.Fl e +Select +.Dq "eval mode" +formatting for output. +This is valid only on display mode and cannot be used when running a +command. +The exact syntax used for output depends upon the type of shell from +which +.Nm +is invoked. +.It Fl b Op Ar val +Select or set the +.Va sbsize +resource limit. +.It Fl c Op Ar val +Select or set (if +.Ar val +is specified) the +.Va coredumpsize +resource limit. +A value of 0 disables core dumps. +.It Fl d Op Ar val +Select or set (if +.Ar val +is specified) the +.Va datasize +resource limit. +.It Fl f Op Ar val +Select or set the +.Va filesize +resource limit. +.It Fl l Op Ar val +Select or set the +.Va memorylocked +resource limit. +.It Fl m Op Ar val +Select or set the +.Va memoryuse +size limit. +.It Fl n Op Ar val +Select or set the +.Va openfiles +resource limit. +The system-wide limit on the maximum number of +open files per process can be viewed by examining the +.Va kern.maxfilesperproc +.Xr sysctl 8 +variable. +The total number of simultaneously open files in the entire +system is limited to the value displayed by the +.Va kern.maxfiles +.Xr sysctl 8 +variable. +.It Fl s Op Ar val +Select or set the +.Va stacksize +resource limit. +.It Fl t Op Ar val +Select or set the +.Va cputime +resource limit. +.It Fl u Op Ar val +Select or set the +.Va maxproc +resource limit. +The system-wide limit on the maximum number of processes +allowed per UID can be viewed by examining the +.Va kern.maxprocperuid +.Xr sysctl 8 +variable. +The maximum number of processes that can be running simultaneously +in the entire system is limited to the value of the +.Va kern.maxproc +.Xr sysctl 8 +variable. +.It Fl v Op Ar val +Select or set the +.Va virtualmem +resource limit. +This limit encompasses the entire VM space for the user process +and is inclusive of text, data, bss, stack, +.Xr brk 2 , +.Xr sbrk 2 +and +.Xr mmap 2 Ns 'd +space. +.It Fl p Op Ar val +Select or set the +.Va pseudoterminals +resource limit. +.It Fl w Op Ar val +Select or set the +.Va swapuse +resource limit. +.El +.Pp +Valid values for +.Ar val +in the above set of options consist of either the +string +.Dq Li infinity , +.Dq Li inf , +.Dq Li unlimited +or +.Dq Li unlimit +for an infinite (or kernel-defined maximum) +limit, or a numeric value optionally followed by a suffix. +Values which relate to size default to a value in bytes, or one of the +following suffixes may be used as a multiplier: +.Pp +.Bl -tag -offset indent -width 4n -compact +.It Li b +512 byte blocks. +.It Li k +kilobytes (1024 bytes). +.It Li m +megabytes (1024*1024 bytes). +.It Li g +gigabytes. +.It Li t +terabytes. +.El +.Pp +The +.Va cputime +resource defaults to a number of seconds, but a multiplier may be +used, and as with size values, multiple values separated by a valid +suffix are added together: +.Pp +.Bl -tag -offset indent -width 4n -compact +.It Li s +seconds. +.It Li m +minutes. +.It Li h +hours. +.It Li d +days. +.It Li w +weeks. +.It Li y +365 day years. +.El +.Bl -tag -width ".Fl C Ar class" +.It Fl E +Cause +.Nm +to completely ignore the environment it inherits. +.It Fl a +Force all resource settings to be displayed even if +other specific resource settings have been specified. +For example, if you wish to disable core dumps when starting up +the Usenet News system, but wish to set all other resource settings +as well that apply to the +.Dq Li news +account, you might use: +.Pp +.Dl "eval `limits -U news -aBec 0`" +.Pp +As with the +.Xr setrlimit 2 +call, only the superuser may raise process +.Dq hard +resource limits. +Non-root users may, however, lower them or change +.Dq soft +resource limits +within to any value below the hard limit. +When invoked to execute a program, the failure of +.Nm +to raise a hard limit is considered a fatal error. +.El +.Sh EXIT STATUS +The +.Nm +utility +exits with +.Dv EXIT_FAILURE +if usage is incorrect in any way; i.e., an invalid +option, or set/display options are selected in the same invocation, +.Fl e +is used when running a program, etc. +When run in display or eval mode, +.Nm +exits with a status of +.Dv EXIT_SUCCESS . +When run in command mode and execution of the command succeeds, the exit status +will be whatever the executed program returns. +.Sh SEE ALSO +.Xr csh 1 , +.Xr env 1 , +.Xr limit 1 , +.Xr sh 1 , +.Xr getrlimit 2 , +.Xr setrlimit 2 , +.Xr login_cap 3 , +.Xr login.conf 5 , +.Xr rctl 8 , +.Xr sysctl 8 +.Sh BUGS +The +.Nm +utility does not handle commands with equal +.Pq Ql = +signs in their +names, for obvious reasons. +.Pp +When eval output is selected, the +.Pa /proc +file system must be installed +and mounted for the shell to be correctly determined, and therefore +output syntax correct for the running shell. +The default output is valid for +.Xr sh 1 , +so this means that any +usage of +.Nm +in eval mode prior mounting +.Pa /proc +may only occur in standard bourne +shell scripts. +.Pp +The +.Nm +utility makes no effort to ensure that resource settings emitted or displayed +are valid and settable by the current user. +Only a superuser account may raise hard limits, and when doing so +the +.Fx +kernel will silently lower limits to values less than +specified if the values given are too high. |