総合手引 | セクション 1 | English | オプション |
limits [limitflags] [name=value ...] command この使い方では limitflags にしたがって制限をセットし、オプションで name=value のペアで与えられた環境変数をセットし、指定された command を実行します。 | |
Op |
この使い方ではリソースの設定の値は実際には設定せずに、設定値を
limitflags
にしたがって決定し、標準出力に出力します。
デフォルトでは、呼び出しプロセスにおいて有効な
現在のカーネルのリソースの設定値を出力します。
|
Fl |
この使い方では
limitflags
にしたがってリソースの設定値を決定しますが、実際には設定は行ないません。
前の使い方のように、これらの設定値を標準出力しますが、
シェルをコールするのに都合の良いように
eval
の形式で出力します。
コールされるシェルは、親プロセスの
/proc
ファイルシステム中のエントリを調べて決定されます。
もし、シェルが判明すると (すなわち
sh
のいずれか)、
limits
は
limit
もしくは
ulimit
コマンドをそのシェルが解釈できるフォーマットで
出力します。シェル名が決定できなかった場合は、
sh(1)
によって使われる
ulimit
形式で出力します。
これはスクリプトで制限を設定したり、 デーモンや他のバックグラウンドタスクを リソースを制限して起動したりする場合に非常に便利な機能です。 また、ログインクラスデータベースを設定し中央データベースを保守することにより、 最大使用リソースをグローバルに設定することができるという利点があります。 limits は通常 シェルスクリプト中では次のようにバッククォーテーションに囲み評価するよ うにして使われます。
eval `limits -e -C daemon`
これで limits の出力が評価され、現在のシェルで設定されます。 |
上記の中で指定された limitflags の値には以下のオプションのうちの 1 つ以上のものが含まれます:
| |
現在のリソースの値をもとに、ログインクラス class で適用される リソースエントリによって変更したものを使います。 | |
| |
現在のリソースの値をもとに、 user が属するログインクラスに適用される リソースエントリによって変更したものを使います。 user がどのクラスにも属していない場合、 "default" クラスが存在すればそ のリソース能力が使用され、もしそのユーザがスーパユーザアカウントであれ ば、 "root" クラスが使用されます。 | |
|
リソースの
"soft"
(もしくは現在の) 制限を表示もしくは設定します。
このスイッチに続いて指定される制限の設定は、
|
|
リソースの
"hard"
(もしくは最大の) 制限を表示もしくは設定します。
このスイッチに続いて指定される制限の設定は、
|
|
リソースの
"soft"
(現在の) および
"hard"
(最大の) 制限を表示もしくは設定します。
このスイッチに続いて指定される制限の設定は、
|
| 出力を "eval mode" (評価モード) の書式にします。 これは表示モードでのみ有効であり、コマンドを実行するときには使えません。 出力に使用される正確なシンタックスは limits が起動されたシェルのタイプに依存します。 |
| |
sbsize 資源制限を選択または設定します。 | |
| |
coredumsize のリソースの制限を選択もしくは設定 ( val が指定された場合) します。 値に 0 を指定するとコアダンプしないようになります。 | |
| |
datasize のリソースの制限を選択もしくは設定 ( val が指定された場合) します。 | |
| |
filesize のリソースの制限を選択もしくは設定します。 | |
| |
memorylocked のリソースの制限を選択もしくは設定します。 | |
| |
memoryuse のサイズの制限を選択もしくは設定します。 | |
| |
openfiles のリソースの制限を選択もしくは設定します。 プロセスごとの最大オープンファイル数のシステムワイドの制限は、 kern.maxfilesperproc sysctl(8) 変数を検査することで表示できます。 システム全体で同時にオープンできるファイルの総数は、 kern.maxfiles sysctl(8) 変数が表示する値に制限されます。 | |
| |
stacksize のリソースの制限を選択もしくは設定します。 | |
| |
cputime のリソースの制限を選択もしくは設定します。 | |
| |
maxproc のリソースの制限を選択もしくは設定します。 UID ごとの最大プロセス数のシステムワイドの制限は、 kern.maxprocperuid sysctl(8) 変数を検査することで表示できます。 システム全体で同時に走行できるプロセスの総数は、 kern.maxproc sysctl(8) 変数の値に制限されます。 | |
| |
virtualmem のリソースの制限を選択もしくは設定します。 当該ユーザプロセスが使用可能な VM 空間全体を制限し、 これには、テキスト、データ、BSS、スタック、 brk(2), sbrk(2) mmap(2) される空間が含まれます。 | |
上記のオプションのセットにおける有効な val の値は、無限値 (もしくは カーネルにおいて定義されている最大値) を設定する場合は文字列 "infinity", "inf", "unlimited", "unlimit" のいずれかを指定し、それ以外の場合は接尾子つきの数字を指定します。 サイズに関する値はデフォルトではバイトでの値となります。また以下の 接尾子の 1 つを付けることによってその単位となります。
b | 512 バイトブロック。 |
k | キロバイト (1024 バイト)。 |
m | メガバイト (1024*1024 バイト)。 |
g | ギガバイト。 |
t | テラバイト。 |
cputime リソースについてはデフォルトでは秒による値となります。 また以下の接尾子を付加することにより、それぞれの単位で指定可能です。 有効な複数の単位指定を並べると、その和を指定したことになります:
s | 秒。 |
m | 分。 |
h | 時間。 |
d | 日。 |
w | 週。 |
y | 年 (365 日)。 |
| limits は継承している環境を完全に無視します。 |
|
特定のリソースの設定が指定されていても、
全てのリソースの設定を表示させます。
例えば、USENET ニュースシステムの立ち上げ時にコアダンプを無効にしたい
が、
"news"
アカウントに適用されるその他の全てのリソースの設定を行ない
たい場合は、次のように使います:
eval `limits -U news -aBec 0`
setrlimit(2) コールのように、スーパユーザのみが "hard" リソース制限を引き上げるこ とができます。 root 以外のユーザはそれを引き下げるか、リソースの "soft" リミットを hard リミットの範囲で変更することができます。 プログラムを実行する場合、 limits が hard リミットを引き上げようとすると、それは致命的エラーとして扱われ ます。 |
評価用の出力が選択された場合、シェルを正しく認識し、そのシェルにとって 出力が正しいシンタックスとなるためには、 /proc ファイルシステムがインストールされマウントされていなければなりません。 デフォルトの出力は sh(1) にとって有効なものとなります。そのため、 /proc マウント前に limits を使用できるのは、標準の bourne シェルスクリプト中でのみとなります。
limits ユーティリティは、 出力や表示するリソースの設定が現在のユーザで有効であるかや、設定可能 であるかについては確認を行ないません。スーパユーザアカウントのみが hard リミットを引き上げることができます。与えられた値が大きすぎる場合は FreeBSD カーネルは何も出力せずにその制限値を指定された値より低く設定します。
LIMITS (1) | September 18, 2002 |
総合手引 | セクション 1 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | A typical Unix /bin or /usr/bin directory contains a hundred different kinds of programs, written by dozens of egotistical programmers, each with its own syntax, operating paradigm, rules of use ... strategies for specifying options, and different sets of constraints. | ” |
— The Unix Haters' handbook |