LIMIT(1) | User Commands | LIMIT(1) |
limit, ulimit, unlimit - set or get limitations on the system resources available to the current shell and its descendents
/usr/bin/ulimit [-f] [blocks]
ulimit [- [HS] [a | cdfnstv]]
ulimit [- [HS] [c | d | f | n | s | t | v]] limit
limit [-h] [resource [limit]]
unlimit [-h] [resource]
ulimit [-HSacdfnstv] [limit]
ulimit [-HSacdfmnpstv] [limit]
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 can be read). Only a process with appropriate privileges can increase the limit.
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 can 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 that the current limit, if any, be removed. Any user can set a soft limit to any value less than or equal to the hard limit. Any user can lower a hard limit. Only a user with appropriate privileges can raise or remove a hard limit. See getrlimit(2).
The -H option specifies a hard limit. The -S option specifies a soft limit. If neither option is specified, ulimit sets both limits and prints 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
-d
-f
-n
-s
-t
-v
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. The string unlimited requests that the current limit, if any, be removed. If limit is omitted, prints the current limit. If resource is omitted, displays all limits.
-h
resource is one of:
cputime
filesize
datasize
stacksize
coredumpsize
descriptors
memorysize
limit is a number, with an optional scaling factor, as follows:
nh
nk
nm
mm:ss
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
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 string unlimited requests that the current limit, if any, be removed. The -H and -S flags specify whether the hard limit or the soft limit for the specified 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
-c
-d
-f
-n
-s
-t
-v
If no option is specified, -f is assumed.
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 2^64bytes.
ulimit sets or displays resource limits. These limits apply to the current process and to each child process created after the resource limit has been set. If limit is specified, the resource limit is set, otherwise, its current value is displayed on standard output.
Increasing the limit for a resource usually requires special privileges. Some systems allow you to lower resource limits and later increase them. These are called soft limits. Once a hard limit is set the resource cannot be increased.
Different systems allow you to specify different resources and some restrict how much you can raise the limit of the resource.
The value of limit depends on the unit of the resource listed for each resource. In addition, limit can be "unlimited" to indicate no limit for that resource.
If you do not specify -H or -S, -S is used for listing and both -S and -H are used for setting resources.
If you do not specify any resource, the default is -f.
The following options are available for ulimit in ksh93:
-a
-b
--sbsize
-c
--core
-d
--data
-f
--fsize
-H
-L
--locks
-l
--memlock
-M
--as
-n
--nofile
-p
--pipe
-m
--rss
-S
-s
--stack
-T
--threads
-t
--cpu
-u
--nproc
-v
--vmem
The following option is supported by /usr/bin/ulimit:
-f
The following operand is supported by /usr/bin/ulimit:
blocks
Example 1 Limiting the Stack Size
The following example limits the stack size to 512 kilobytes:
example% ulimit -s 512 example% ulimit -a time(seconds) unlimited file(blocks) 100 data(kbytes) 523256 stack(kbytes) 512 coredump(blocks) 200 nofiles(descriptors) 64 memory(kbytes) unlimited
Example 2 Limiting the Number of File Descriptors
The following command limits the number of file descriptors to 12:
example$ ulimit -n 12 example$ ulimit -a time(seconds) unlimited file(blocks) 41943 data(kbytes) 523256 stack(kbytes) 8192 coredump(blocks) 200 nofiles(descriptors) 12 vmemory(kbytes) unlimited
Example 3 Limiting the Core Dump File Size
The following command limits the size of a core dump file size to 0 kilobytes:
example% limit coredumpsize 0 example% limit cputime unlimited filesize unlimited datasize 523256 kbytes stacksize 8192 kbytes coredumpsize 0 kbytes descriptors 64 memorysize unlimited
Example 4 Removing the limitation for core file size
The following command removes the above limitation for the core file size:
example% unlimit coredumpsize example% limit cputime unlimited filesize unlimited datasize 523256 kbytes stacksize 8192 kbytes coredumpsize unlimited descriptors 64 memorysize unlimited
See environ(7) for descriptions of the following environment variables that affect the execution of ulimit: LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and NLSPATH.
The following exit values are returned by ulimit:
0
>0
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Committed |
Standard | See standards(7). |
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Uncommitted |
bc(1), csh(1), ksh(1), ksh93(1), sh(1), getrlimit(2), attributes(7), environ(7), standards(7), df(8), su(8), swap(8), sysdef(8)
September 12, 2020 | OmniOS |