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 組み込みコマンドが入っています。 |