Ulimit 組込みコマンドはシェルプロセスのリソース制限を表示・設定します。

構文

  • ulimit -a [-H|-S]

  • ulimit [-H|-S] [-efilnqrstuvx] []

説明

Ulimit コマンドはシェルプロセスのリソース制限値を表示または設定します。

-a (--all) オプションを付けて実行すると、ulimit コマンドは全ての種類のリソースについて現在の制限値を一覧形式で標準出力に出力します。-a (--all) オプションを付けないで実行すると、一種類のリソースについて制限値を表示または設定します。オペランドでを指定している場合、その値に制限値を設定します。を指定していない場合は現在の制限値を標準出力に出力します。表示・設定するリソースの種類はオプションで指定します。設定したリソースの制限値はシェルが起動する各コマンドに受け継がれます。

リソースの各種類について、ハードリミットソフトリミットの二種類の制限値があります。ソフトリミットがハードリミットを超えることはできません。またハードリミットを緩めるには専用の権限が必要です。

-H (--hard) オプションを指定している場合、ulimit コマンドはハードリミットを表示または設定します。-S (--soft) オプションを指定している場合、ulimit コマンドはソフトリミットを表示または設定します。どちらのオプションも指定してない場合、ulimit コマンドはソフトリミットのみを表示するかまたはハードリミットとソフトリミットの両方を設定します。

オプション

-H
--hard

ハードリミットを表示または設定します。

-S
--soft

ソフトリミットを表示または設定します。

-a
--all

全種類のリソース制限値を表示します。

以下のオプションは表示・設定するリソースの種類を指定します。これらのオプションがどれも与えられていないときは、-f が与えられたものとみなします。(表示・設定可能なリソースの種類はシステムによって異なります)

-c
--core

プロセスが強制終了させられたときにできるコアファイルのサイズの限界 (512 バイト単位)

-d
--data

プロセスが使用できるデータセグメント領域のサイズの限界 (キロバイト単位)

-e
--nice

スケジューリング優先度 (nice 値) の限界

-f
--fsize

プロセスが作成できるファイルのサイズの限界 (512 バイト単位)

-i
--sigpending

プロセスの処理待ちシグナルの個数の限界

-l
--memlock

RAM 上にロック可能なメモリサイズの限界 (キロバイト単位)

-m
--rss

プロセスの resident set (RAM 上に存在する仮想ページ) の数の限界 (キロバイト単位)

-n
--nofile

プロセスが使用できるファイル記述子の最大値 + 1

-q
--msgqueue

POSIX メッセージキューのサイズの限界

-r
--rtprio

リアルタイムスケジューリングの優先度の限界

-s
--stack

プロセスが使用できるスタック領域のサイズの限界 (キロバイト単位)

-t
--cpu

プロセスが使用できる CPU 時間の限界 (秒単位)

-u
--nproc

プロセスが起動できる子プロセスの個数の限界

-v
--as

プロセスが使用できるメモリ領域全体のサイズの限界 (キロバイト単位)

-x
--locks

プロセスがロックできるファイルの個数の限界

オペランド

設定するリソース制限値です。

値は基本的に 0 以上の自然数で指定しますが、自然数の代わりに hardsoftunlimited のいずれかの文字列を指定することもできます。これらの文字列はそれぞれ現在のハードリミットの値、現在のソフトリミットの値、無制限を表します。

終了ステータス

リソース制限値が正しく出力または設定できたときは、終了ステータスは 0 です。エラーがあると終了ステータスは非 0 です。

補足

POSIX が規定しているオプションは -f だけです。また POSIX はオペランドのとして自然数しか規定していません。

Ulimit コマンドは​準特殊組込みコマンドです。