limit

, ulimit

, unlimit

- set or get limitations on the system resources available to the current shell and its descendents

Synopsis

/usr/bin/ulimit [-f] [blocks]

sh

ulimit [- [HS] [a | cdfnstv]]

ulimit [- [HS] [c | d | f | n | s | t | v]] limit

csh

limit [-h] [resource [limit]]

unlimit [-h] [resource]

ksh

ulimit [-HSacdfnstv] [limit]

Description

/usr/bin/ulimit

The ulimit utility sets or reports the file-size writing limit imposed on
files written by the shell and its child processes (files of any
size may be read). Only a process with appropriate privileges can increase
the limit.

sh

The Bourne shell built-in function, ulimit, prints or sets hard or soft
resource limits. These limits are described in getrlimit(2).

If limit is not present, ulimit prints the specified limits. Any number
of limits may be printed at one time. The -a option prints
all limits.

If limit is present, ulimit sets the specified limit to limit. The
string unlimited requests the largest valid limit. Limits may be set for
only one resource at a time. Any user may set a soft
limit to any value below the hard limit. Any user may lower a
hard limit. Only a super-user may raise a hard limit. See su(1M).

The -H option specifies a hard limit. The -S option specifies a
soft limit. If neither option is specified, ulimit will set both limits
and print the soft limit.

The following options specify the resource whose limits are to be printed
or set. If no option is specified, the file size limit is
printed or set.

-c

maximum core file size (in 512-byte blocks)

-d

maximum size of data segment or heap (in kbytes)

-f

maximum file size (in 512-byte blocks)

-n

maximum file descriptor plus 1

-s

maximum size of stack segment (in kbytes)

-t

maximum CPU time (in seconds)

-v

maximum size of virtual memory (in kbytes)

csh

The C-shell built-in function, limit, limits the consumption by the current process
or any process it spawns, each not to exceed limit on the
specified resource. If limit is omitted, print the current limit; if resource is
omitted, display all limits.

-h

Use hard limits instead of the current limits. Hard limits impose a ceiling on the values of the current limits. Only the privileged user may raise the hard limits.

resource is one of:

cputime

Maximum CPU seconds per process.

filesize

Largest single file allowed. Limited by the size of the filesystem (see df(1M)).

datasize

The maximum size of a process's heap in kilobytes.

stacksize

Maximum stack size for the process. The default stack size is 264.

coredumpsize

Maximum size of a core dump (file). This is limited to the size of the filesystem.

descriptors

Maximum number of file descriptors. Run the sysdef(1M) command to obtain the maximum possible limits for your system. The values reported by sysdef are in hexadecimal, but can be translated into decimal numbers using the bc(1) command.

memorysize

Maximum size of virtual memory.

limit is a number, with an optional scaling factor, as follows:

nh

Hours (for cputime).

nk

n kilobytes. This is the default for all but cputime.

nm

n megabytes or minutes (for cputime).

mm:ss

Minutes and seconds (for cputime).

unlimit removes a limitation on resource. If no resource is specified, then
all resource limitations are removed. See the description of the limit command
for the list of resource names.

-h

Remove corresponding hard limits. Only the privileged user may do this.

ksh

The Korn shell built-in function, ulimit, sets or displays a resource
limit. The available resources limits are listed below. Many systems do not
contain one or more of these limits. The limit for a specified
resource is set when limit is specified. The value of limit can be
a number in the unit specified below with each resource, or the
value unlimited. The -H and -S flags specify whether the hard limit
or the soft limit for the given resource is set. A hard
limit cannot be increased once it is set. A soft limit can be
increased up to the value of the hard limit. If neither the
-H or -S options is specified, the limit applies to both. The
current resource limit is printed when limit is omitted. In this case, the
soft limit is printed unless -H is specified. When more than one
resource is specified, then the limit name and unit is printed before
the value.

-a

Lists all of the current resource limits.

-c

The number of 512-byte blocks on the size of core dumps.

-d

The number of K-bytes on the size of the data area.

-f

The number of 512-byte blocks on files written by child processes (files of any size may be read).

-n

The number of file descriptors plus 1.

-s

The number of K-bytes on the size of the stack area.

-t

The number of seconds (CPU time) to be used by each process.

-v

The number of K-bytes for virtual memory.

If no option is given, -f is assumed.

Per-Shell Memory Parameters

The heapsize, datasize, and stacksize parameters are not system tunables. The only
controls for these are hard limits, set in a shell startup file,
or system-wide soft limits, which, for the current version of the Solaris
OS, is 264bytes.

Options

The following option is supported by ulimit:

-f

Sets (or reports, if no blocks operand is present), the file size limit in blocks. The -f option is also the default case.