ulimit コマンド

目的

ユーザー・リソースの制限を設定または報告します。

構文

ulimit [ -H ] [ -S (S) ] [ -a 値 ] [ 「-c」 ] [ -d 年 ] [  「-f」 ] [ -m (M) ] [ N ] [ - ] [ -s ] [ T ] [-u ]限界 ]

説明

ulimit コマンドは、/etc/security/limits ファイル内で定義されているユーザー処理リソースの制限を設定または報告します。 このファイルには、以下のデフォルト制限が入っています。

fsize = 2097151
core = 2097151
cpu = -1
data = 262144
rss = 65536
stack = 65536
nofiles = 2000
threads = -1
nproc = -1

これらの値は、新しいユーザーをシステムに追加するときのデフォルト設定として使用されます。 値は、ユーザーをシステムに追加するときに mkuser コマンドで設定されるか、または chuser コマンドで変更されます。

制限には、ソフト制限とハード制限に分類されています。 ulimit コマンドを使用すると、 ハード制限によって設定されている上限を超えない範囲内で、ソフト制限を変更することがどきます。 リソースのハード制限を変更するには、root ユーザー権限を持っていなければなりません。

多くのシステムには、これらの制限のいくつかは適用されません。 指定されたリソースの制限は、Limit パラメーターが指定されたときに設定されます。 Limit パラメーターの値は、各リソースで指定された単位の数値、またはその値にすることができます。unlimited。特定の ulimit を以下のように設定します。unlimited、次の語を使用します。unlimited

注: /etc/security/limits ファイルにデフォルトの制限を設定すると、ユーザーの作成時にユーザーが設定した制限だけでなく、システム全体の制限も設定されます。

Limit パラメーターを省略すると、現在のリソース制限が出力されます。 -H フラグを指定しないと、ソフト制限が出力されます。 リソースを複数指定すると、制限名とユニットが値の前に出力されます。 オプションを指定しない場合は、-f フラグと想定されます。

ulimit コマンドは現在のシェル環境に影響を及ぼすので、 シェルの正規組み込みコマンドとして用意されています。 このコマンドを別のコマンド実行環境内で呼び出すと、 呼び出し側の環境のファイル・サイズ制限には影響を及ぼしません。 以下の例は、このような場合を示しています。

nohup ulimit -f 10000
env ulimit 10000

ハード制限を、プロセスで 1 回小さくすると、元の制限に戻す場合であっても、root 権限がなければ大きくすることはできません。

フラグ

項目 説明
-a すべての現在のリソースの制限をリストします。
-c メモリー・ダンプのサイズを、512 バイトのブロック数で指定します。
-d データ域のサイズを、キロバイト数で指定します。
-f Limit パラメーターが指定された場合はファイル・サイズをブロック単位で指定します。パラメーターが指定されなかった場合は、ファイル・サイズ制限を報告します。 -f フラグがデフォルトです。
-H 所定のリソースのハード制限を設定することを指定します。 root ユーザー権限を持っている場合は、ハード制限を大きくすることができます。 どのユーザーもハード制限を小さくすることができます。
-m 物理メモリーのサイズ (常駐セット・サイズ) を K バイト数で指定します。 この制限はシステムによって強制されません。
-n プロセスが持てるファイル・ディスクリプターの数に対する制限を指定します。
-r プロセスが持てるスレッド数に対する制限を指定します。
-s スタック・サイズをキロバイト単位で指定します。
-S 所定のリソースのソフト制限を設定することを指定します。 ソフト制限は、ハード制限の値の範囲内で大きくすることができます。 -H フラグも -S フラグも指定されなければ、 制限は両方に適用されます。
-t 各プロセスに使用される秒数を指定します。
-u ユーザーが作成できるプロセス数に対する制限を指定します。

終了状況

次のような終了値が戻されます。

項目 説明
0 正常終了。
>0 制限値を大きくしようとする要求がリジェクトされました。またはエラーが発生しました。

ファイル・サイズ制限を 51,200 バイトに設定するには、次のように入力します。

ulimit -f 100

現行のリソース制限をすべてリストするには、以下のように入力します。

ulimit -a

time(seconds)        unlimited
file(blocks)         2097151
data(kbytes)         131072
stack(kbytes)        32768
memory(kbytes)       65536
coredump(blocks)     2097151
nofiles(descriptors) 2000
threads(per process) unlimited
processes(per user)  unlimited

ファイル

項目 説明
/usr/bin/ksh ulimit 組み込みコマンドが入っています。