ulimit コマンド
目的
ユーザー・リソースの制限を設定または報告します。
構文
ulimit [ -H ] [ -S ] [ -a ] [ -c ] [ -d ] [ -f ] [ -m ] [ -n ] [ -r ] [ -s ] [ -t ] [-u ][ Limit ]
説明
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 を使用することができます。 unlimited に特定の ulimit を設定するには、 unlimited
を使用します。注: /etc/security/limits ファイルにデフォルト制限を設定すると、ユーザーの作成時にそのユーザーが制限を負うだけでなく、システム上の制限も広く設定されます。
Limit パラメーターを省略すると、現在のリソース制限が出力されます。 -H フラグを指定しないと、ソフト制限が出力されます。 リソースを複数指定すると、制限名とユニットが値の前に出力されます。 オプションを指定しない場合は、-f フラグと想定されます。
ulimit コマンドは現在のシェル環境に影響を及ぼすので、 シェルの正規組み込みコマンドとして用意されています。 このコマンドを別のコマンド実行環境内で呼び出すと、 呼び出し側の環境のファイル・サイズ制限には影響を及ぼしません。 以下の例は、このような場合を示しています。
nohup ulimit -f 10000
env ulimit 10000ハード制限を、プロセスで 1 回小さくすると、元の制限に戻す場合であっても、root 権限がなければ大きくすることはできません。
ユーザー・リソースとシステム・リソースの制限の詳細については、 「Technical Reference: Base Operating System and Extensions, Volume 1」の getrlimit、setrlimit、 または vlimit サブルーチンを参照してください。
フラグ
| 項目 | 説明 |
|---|---|
| -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 組み込みコマンドが入っています。 |