NAME
ulimit - set or get the shells resource usage limits
Synopsis
ulimit [OPTIONS] [LIMIT]
Description
The ulimit builtin is used to set the resource
usage limits of the shell and any processes spawned by it. If a new
limit value is omitted, the current value of the limit of the
resource is printed.
Use one of the following switches to specify which resource
limit to set or report:
- *
- -c or --core-size The maximum size of core files created
- *
- -d or --data-size The maximum size of a process's data segment
- *
- -f or --file-size The maximum size of files created by the
shell
- *
- -l or --lock-size The maximum size that may be locked into
memory
- *
- -m or --resident-set-size The maximum resident set size
- *
- -n or --file-descriptor-count The maximum number of open file
descriptors (most systems do not allow this value to be set)
- *
- -s or --stack-size The maximum stack size
- *
- -t or --cpu-time The maximum amount of cpu time in seconds
- *
- -u or --process-count The maximum number of processes available
to a single user
- *
- -v or --virtual-memory-size The maximum amount of virtual
memory available to the shell. If supported by OS.
Note that not all these limits are available in all operating
systems.
The value of limit can be a number in the unit specified for the
resource or one of the special values hard, soft, or unlimited,
which stand for the current hard limit, the current soft limit, and
no limit, respectively.
If limit is given, it is the new value of the specified
resource. If no option is given, then -f is assumed. Values are in
kilobytes, except for -t, which is in seconds and -n and -u, which
are unscaled values. The return status is 0 unless an invalid
option or argument is supplied, or an error occurs while setting a
new limit.
ulimit also accepts the following switches that determine what
type of limit to set:
- *
- -H or --hard Set hard resource limit
- *
- -S or --soft Set soft resource limit
A hard limit cannot be increased once it is set; a soft limit
may be increased up to the value of the hard limit. If neither -H
nor -S is specified, both the soft and hard limits are updated when
assigning a new limit value, and the soft limit is used when
reporting the current value.
The following additional options are also understood by ulimit:
- *
- -a or --all Print all current limits
- *
- -h or --help Display help and exit
The fish implementation of ulimit should behave identically to
the implementation in bash, except for these differences:
- *
- Fish ulimit supports GNU-style long options for all switches
- *
- Fish ulimit does not support the -p option for getting the pipe
size. The bash implementation consists of a compile-time check that
empirically guesses this number by writing to a pipe and waiting
for SIGPIPE. Depending on bash version, there may also be further
additional limits to set in bash that do not exist in fish.
- *
- Fish ulimit does not support getting or setting multiple limits
in one command, except reporting all values using the -a
switch
Example
ulimit -Hs 64
would set the hard stack size limit to 64 kB: