スポンサーリンク

LIMITS(1) FreeBSD 一般コマンドマニュアル LIMITS(1)

名称

limits − リソースの制限値の設定および表示

書式

limits [−C class | −U user] [−SHB] [−ea] [−bcdflmnstuv [val]]

limits [−C class | −U user] [−SHB] [−bcdflmnstuv [val]] [−E] [

            [name=value ...] command]

解説

limits ユーティリティはカーネルのリソース制限の表示および設定を行ないま す。また、 env(1) のように環境変数を設定して、プログラムを選択したリソー スで動作させることもできます。 limits ユーティリティは以下の 3 通りの使い 方ができます:

         limits [limitflags] [name=value ...] command

この使い方では limitflags にしたがって制限をセットし、オプション で name=value のペアで与えられた環境変数をセットし、指定された command を実行します。

limits [limitflags]
この使い方ではリソースの設定の値は実際には設定せずに、設定値を limitflags にしたがって決定し、標準出力に出力します。デフォルトで は、呼び出しプロセスにおいて有効な現在のカーネルのリソースの設定 値を出力します。 −C class−U user オプションを使うと、ログイン 能力データベース login.conf(5) で設定されているログインクラスのリ ソース制限エントリによって変更された現在のリソース設定を表示しま す。

limits −e [limitflags]
この使い方では limitflags にしたがってリソースの設定値を決定しま すが、実際には設定は行ないません。前の使い方のように、これらの設 定値を標準出力しますが、シェルをコールするのに都合の良いように eval の形式で出力します。コールされるシェルは、親プロセスの /proc ファイルシステム中のエントリを調べて決定されます。もし、シェルが 判明すると (すなわち sh, csh, bash, tcsh, ksh, pdksh, rc のいずれ か)、 limitslimit もしくは ulimit コマンドをそのシェルが解釈 できるフォーマットで出力します。シェル名が決定できなかった場合 は、 sh(1) によって使われる ulimit 形式で出力します。

これはスクリプトで制限を設定したり、デーモンや他のバックグラウン ドタスクをリソースを制限して起動したりする場合に非常に便利な機能 です。また、ログインクラスデータベースを設定し中央データベースを 保守することにより、最大使用リソースをグローバルに設定することが できるという利点があります。

limits は通常シェルスクリプト中では次のようにバッククォーテーショ ンに囲み評価するようにして使われます。

eval ‘limits -e -C daemon‘

これで limits の出力が評価され、現在のシェルで設定されます。

上記の中で指定された limitflags の値には以下のオプションのうちの 1 つ以上 のものが含まれます:

−C class
現在のリソースの値をもとに、ログインクラス class で適用されるリ ソースエントリによって変更したものを使います。

−U user
現在のリソースの値をもとに、 user が属するログインクラスに適用 されるリソースエントリによって変更したものを使います。 user が どのクラスにも属していない場合、 ‘‘default’’ クラスが存在すれば そのリソース能力が使用され、もしそのユーザがスーパユーザアカウ ントであれば、 ‘‘root’’ クラスが使用されます。

−S
リソースの ‘‘soft’’ (もしくは現在の) 制限を表示もしくは設定しま す。このスイッチに続いて指定される制限の設定は、 −H−B オプ ションでオーバライドしない限り、soft リミットに対する設定となり ます。

−H
リソースの ‘‘hard’’ (もしくは最大の) 制限を表示もしくは設定しま す。このスイッチに続いて指定される制限の設定は、 −S−B オプ ションでオーバライドしない限り、hard リミットに対する設定となり ます。

−B
リソースの ‘‘soft’’ (現在の) および ‘‘hard’’ (最大の) 制限を表 示もしくは設定します。このスイッチに続いて指定される制限の設定 は、 −S−H オプションでオーバライドしない限り、soft リミット および hard リミットの両者に対する設定となります。

−e
出力を ‘‘eval mode’’ (評価モード) の書式にします。これは表示 モードでのみ有効であり、コマンドを実行するときには使えません。 出力に使用される正確なシンタックスは limits が起動されたシェル のタイプに依存します。

−b [val]
sbsize
資源制限を選択または設定します。

−c [val]
coredumsize
のリソースの制限を選択もしくは設定 (val が指定され た場合) します。値に 0 を指定するとコアダンプしないようになりま す。

−d [val]
datasize
のリソースの制限を選択もしくは設定 (val が指定された場 合) します。

−f [val]
filesize
のリソースの制限を選択もしくは設定します。

−l [val]
memorylocked
のリソースの制限を選択もしくは設定します。

−m [val]
memoryuse
のサイズの制限を選択もしくは設定します。

−n [val]
openfiles
のリソースの制限を選択もしくは設定します。プロセスご との最大オープンファイル数のシステムワイドの制限は、 kern.maxfilesperproc sysctl(8) 変数を検査することで表示できま す。システム全体で同時にオープンできるファイルの総数は、 kern.maxfiles sysctl(8) 変数が表示する値に制限されます。

−s [val]
stacksize
のリソースの制限を選択もしくは設定します。

−t [val]
cputime
のリソースの制限を選択もしくは設定します。

−u [val]
maxproc
のリソースの制限を選択もしくは設定します。 UID ごとの最 大プロセス数のシステムワイドの制限は、 kern.maxprocperuid sysctl(8) 変数を検査することで表示できます。システム全体で同時 に走行できるプロセスの総数は、 kern.maxproc sysctl(8) 変数の値 に制限されます。

−v [val]
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 日)。

−E
limits
は継承している環境を完全に無視します。

−a
特定のリソースの設定が指定されていても、全てのリソースの設定を 表示させます。例えば、USENET ニュースシステムの立ち上げ時にコア ダンプを無効にしたいが、 ‘‘news’’ アカウントに適用されるその他 の全てのリソースの設定を行ないたい場合は、次のように使います:

eval ‘limits -U news -aBec 0‘

setrlimit(2) コールのように、スーパユーザのみが ‘‘hard’’ リソー ス制限を引き上げることができます。 root 以外のユーザはそれを引 き下げるか、リソースの ‘‘soft’’ リミットを hard リミットの範囲 で変更することができます。プログラムを実行する場合、 limits が hard リミットを引き上げようとすると、それは致命的エラーとして扱 われます。

診断

limits ユーティリティは、ユーザが何らかの方法で誤使用をすると EXIT_FAILURE で終了します。誤使用には不正なオプションを使用した場合や、同 時に設定と表示のオプションを指定した場合、または −e がプログラムを起動す る時に使われた場合などが含まれます。表示モードもしくは評価モードにて実行 されたとき、 limits は EXIT_SUCCESS の終了ステータスで終了します。コマン ドモードで実行されコマンドの実行が成功したときには、終了ステータスは実行 されたプログラムが返すものになります。

関連項目

csh(1), env(1), limit(1), sh(1), getrlimit(2), setrlimit(2), login_cap(3), login.conf(5), sysctl(8)

バグ

明らかな理由により、 limits ユーティリティは、等号 (‘=’) がその名称に含ま れるコマンドを扱うことができません。

評価用の出力が選択された場合、シェルを正しく認識し、そのシェルにとって出 力が正しいシンタックスとなるためには、 /proc ファイルシステムがインストー ルされマウントされていなければなりません。デフォルトの出力は sh(1) にとっ て有効なものとなります。そのため、 /proc マウント前に limits を使用できる のは、標準の bourne シェルスクリプト中でのみとなります。

limits ユーティリティは、出力や表示するリソースの設定が現在のユーザで有効 であるかや、設定可能であるかについては確認を行ないません。スーパユーザア カウントのみが hard リミットを引き上げることができます。与えられた値が大 きすぎる場合は FreeBSD カーネルは何も出力せずにその制限値を指定された値よ り低く設定します。

FreeBSD 10.0 September 18, 2002 FreeBSD 10.0

スポンサーリンク