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

limits

前のページ 上に戻る 次のページ

limits


     limits [-C class] [-SHB] [-cdflmnstu [val]] [-E] [name=value ...]
            [command]
     limits [-U user] [-SHB] [-ea] [-cdflmnstu [val]]
     limits [-U user] [-SHB] [-cdflmnstu [val]] [-E] [name=value ...]
            [command]


解説

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

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

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

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

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

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

                   eval `limits -e -C daemon`

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     -u [limit]  maxproc のリソースの制限を選択もしくは設定します。 UID ごとの
                 最大プロセス数のシステムワイドの制限は、 'sysctl kern.max-
                 procperuid' コマンドで表示できます。システム全体で同時に走行
                 できるプロセスの総数は、 'sysctl kern.maxproc' コマンドで表示
                 できる値に制限されます。

                 上記のフラグのセットにおける有効な limit の値は、無限値 (もし
                 くはカーネルにおいて定義されている最大値) を設定する場合は文
                 字列 infinity inf unlimited unlimit のいずれかを指定し、それ
                 以外の場合は接尾子つきの数字を指定します。サイズに関する値は
                 デフォルトではバイトでの値となります。また以下の接尾子の 1 つ
                 を付けることによってその単位となります。
                       d     日。
                       w     週。
                       y     年 (365 日)。

     -E          `-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 4.4                    January 15, 1996                    FreeBSD 4.4

ABELNET VPSサービス