9736c4ddb6
Submitted by: kano at na rim or jp
372 lines
9.4 KiB
Groff
372 lines
9.4 KiB
Groff
.\" Copyright (c) 1996 David Nugent <davidn@blaze.net.au>
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, is permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice immediately at the beginning of the file, without modification,
|
|
.\" this list of conditions, and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\" 3. This work was done expressly for inclusion into FreeBSD. Other use
|
|
.\" is permitted provided this notation is included.
|
|
.\" 4. Absolutely no warranty of function or purpose is made by the author
|
|
.\" David Nugent.
|
|
.\" 5. Modifications may be freely made to this file providing the above
|
|
.\" conditions are met.
|
|
.\"
|
|
.\" %FreeBSD: src/usr.bin/limits/limits.1,v 1.28 2004/07/02 22:22:26 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd September 18, 2002
|
|
.Dt LIMITS 1
|
|
.Os
|
|
.Sh 名称
|
|
.Nm limits
|
|
.Nd リソースの制限値の設定および表示
|
|
.Sh 書式
|
|
.Nm
|
|
.Op Fl C Ar class | Fl U Ar user
|
|
.Op Fl SHB
|
|
.Op Fl ea
|
|
.Op Fl bcdflmnstuv Op Ar val
|
|
.Nm
|
|
.Op Fl C Ar class | Fl U Ar user
|
|
.Op Fl SHB
|
|
.Op Fl bcdflmnstuv Op Ar val
|
|
.Op Fl E
|
|
.Oo
|
|
.Op Ar name Ns = Ns Ar value ...
|
|
.Ar command
|
|
.Oc
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティはカーネルのリソース制限の表示および設定を行ないます。
|
|
また、
|
|
.Xr env 1
|
|
のように環境変数を設定して、プログラムを選択したリソースで動作させるこ
|
|
ともできます。
|
|
.Nm
|
|
ユーティリティは以下の 3 通りの使い方ができます:
|
|
.Pp
|
|
.Bl -tag -width indent
|
|
.It Xo
|
|
.Nm
|
|
.Op Ar limitflags
|
|
.Op Ar name Ns = Ns Ar value ...
|
|
.Ar command
|
|
.Xc
|
|
この使い方では
|
|
.Ar limitflags
|
|
にしたがって制限をセットし、オプションで
|
|
.Ar name Ns = Ns Ar value
|
|
のペアで与えられた環境変数をセットし、指定された
|
|
.Ar command
|
|
を実行します。
|
|
.It Nm Op Ar limitflags
|
|
この使い方ではリソースの設定の値は実際には設定せずに、設定値を
|
|
.Ar limitflags
|
|
にしたがって決定し、標準出力に出力します。
|
|
デフォルトでは、呼び出しプロセスにおいて有効な
|
|
現在のカーネルのリソースの設定値を出力します。
|
|
.Fl C Ar class
|
|
や
|
|
.Fl U Ar user
|
|
オプションを使うと、ログイン能力データベース
|
|
.Xr login.conf 5
|
|
で設定されているログインクラスのリソース制限エントリによって変更された
|
|
現在のリソース設定を表示します。
|
|
.It Nm Fl e Op Ar limitflags
|
|
この使い方では
|
|
.Ar limitflags
|
|
にしたがってリソースの設定値を決定しますが、実際には設定は行ないません。
|
|
前の使い方のように、これらの設定値を標準出力しますが、
|
|
シェルをコールするのに都合の良いように
|
|
.Ic eval
|
|
の形式で出力します。
|
|
コールされるシェルは、親プロセスの
|
|
.Pa /proc
|
|
ファイルシステム中のエントリを調べて決定されます。
|
|
もし、シェルが判明すると (すなわち
|
|
.Nm sh , csh , bash , tcsh , ksh , pdksh , rc
|
|
のいずれか)、
|
|
.Nm
|
|
は
|
|
.Ic limit
|
|
もしくは
|
|
.Ic ulimit
|
|
コマンドをそのシェルが解釈できるフォーマットで
|
|
出力します。シェル名が決定できなかった場合は、
|
|
.Xr sh 1
|
|
によって使われる
|
|
.Ic ulimit
|
|
形式で出力します。
|
|
.Pp
|
|
これはスクリプトで制限を設定したり、
|
|
デーモンや他のバックグラウンドタスクを
|
|
リソースを制限して起動したりする場合に非常に便利な機能です。
|
|
また、ログインクラスデータベースを設定し中央データベースを保守することにより、
|
|
最大使用リソースをグローバルに設定することができるという利点があります。
|
|
.Pp
|
|
.Nm
|
|
は通常
|
|
シェルスクリプト中では次のようにバッククォーテーションに囲み評価するよ
|
|
うにして使われます。
|
|
.Pp
|
|
.Dl "eval `limits -e -C daemon`"
|
|
.Pp
|
|
これで
|
|
.Nm
|
|
の出力が評価され、現在のシェルで設定されます。
|
|
.El
|
|
.Pp
|
|
上記の中で指定された
|
|
.Ar limitflags
|
|
の値には以下のオプションのうちの
|
|
1 つ以上のものが含まれます:
|
|
.Bl -tag -width ".Fl C Ar class"
|
|
.It Fl C Ar class
|
|
現在のリソースの値をもとに、ログインクラス
|
|
.Ar class
|
|
で適用される
|
|
リソースエントリによって変更したものを使います。
|
|
.It Fl U Ar user
|
|
現在のリソースの値をもとに、
|
|
.Ar user
|
|
が属するログインクラスに適用される
|
|
リソースエントリによって変更したものを使います。
|
|
user がどのクラスにも属していない場合、
|
|
.Dq Li default
|
|
クラスが存在すればそ
|
|
のリソース能力が使用され、もしそのユーザがスーパユーザアカウントであれ
|
|
ば、
|
|
.Dq Li root
|
|
クラスが使用されます。
|
|
.It Fl S
|
|
リソースの
|
|
.Dq soft
|
|
(もしくは現在の) 制限を表示もしくは設定します。
|
|
このスイッチに続いて指定される制限の設定は、
|
|
.Fl H
|
|
や
|
|
.Fl B
|
|
オプションでオーバライドしない限り、soft リミットに対する設定となります。
|
|
.It Fl H
|
|
リソースの
|
|
.Dq hard
|
|
(もしくは最大の) 制限を表示もしくは設定します。
|
|
このスイッチに続いて指定される制限の設定は、
|
|
.Fl S
|
|
や
|
|
.Fl B
|
|
オプションでオーバライドしない限り、hard リミットに対する設定となります。
|
|
.It Fl B
|
|
リソースの
|
|
.Dq soft
|
|
(現在の) および
|
|
.Dq hard
|
|
(最大の) 制限を表示もしくは設定します。
|
|
このスイッチに続いて指定される制限の設定は、
|
|
.Fl S
|
|
や
|
|
.Fl H
|
|
オプションでオーバライドしない限り、soft リミットおよび hard リミットの
|
|
両者に対する設定となります。
|
|
.It Fl e
|
|
出力を
|
|
.Dq "eval mode"
|
|
(評価モード) の書式にします。
|
|
これは表示モードでのみ有効であり、コマンドを実行するときには使えません。
|
|
出力に使用される正確なシンタックスは
|
|
.Nm
|
|
が起動されたシェルのタイプに依存します。
|
|
.It Fl b Op Ar val
|
|
.Va sbsize
|
|
資源制限を選択または設定します。
|
|
.It Fl c Op Ar val
|
|
.Em coredumpsize
|
|
のリソースの制限を選択もしくは設定
|
|
.Ar ( val
|
|
が指定された場合) します。
|
|
値に 0 を指定するとコアダンプしないようになります。
|
|
.It Fl d Op Ar val
|
|
.Va datasize
|
|
のリソースの制限を選択もしくは設定
|
|
.Ar ( val
|
|
が指定された場合) します。
|
|
.It Fl f Op Ar val
|
|
.Va filesize
|
|
のリソースの制限を選択もしくは設定します。
|
|
.It Fl l Op Ar val
|
|
.Va memorylocked
|
|
のリソースの制限を選択もしくは設定します。
|
|
.It Fl m Op Ar val
|
|
.Va memoryuse
|
|
のサイズの制限を選択もしくは設定します。
|
|
.It Fl n Op Ar val
|
|
.Va openfiles
|
|
のリソースの制限を選択もしくは設定します。
|
|
プロセスごとの最大オープンファイル数のシステムワイドの制限は、
|
|
.Va kern.maxfilesperproc
|
|
.Xr sysctl 8
|
|
変数を検査することで表示できます。
|
|
システム全体で同時にオープンできるファイルの総数は、
|
|
.Va kern.maxfiles
|
|
.Xr sysctl 8
|
|
変数が表示する値に制限されます。
|
|
.It Fl s Op Ar val
|
|
.Va stacksize
|
|
のリソースの制限を選択もしくは設定します。
|
|
.It Fl t Op Ar val
|
|
.Va cputime
|
|
のリソースの制限を選択もしくは設定します。
|
|
.It Fl u Op Ar val
|
|
.Va maxproc
|
|
のリソースの制限を選択もしくは設定します。
|
|
UID ごとの最大プロセス数のシステムワイドの制限は、
|
|
.Va kern.maxprocperuid
|
|
.Xr sysctl 8
|
|
変数を検査することで表示できます。
|
|
システム全体で同時に走行できるプロセスの総数は、
|
|
.Va kern.maxproc
|
|
.Xr sysctl 8
|
|
変数の値に制限されます。
|
|
.It Fl v Op Ar val
|
|
.Va virtualmem
|
|
のリソースの制限を選択もしくは設定します。
|
|
当該ユーザプロセスが使用可能な VM 空間全体を制限し、
|
|
これには、テキスト、データ、BSS、スタック、
|
|
.Xr brk 2 ,
|
|
.Xr sbrk 2
|
|
.Xr mmap 2
|
|
される空間が含まれます。
|
|
.El
|
|
.Pp
|
|
上記のオプションのセットにおける有効な
|
|
.Ar val
|
|
の値は、無限値 (もしくは
|
|
カーネルにおいて定義されている最大値) を設定する場合は文字列
|
|
.Dq Li infinity ,
|
|
.Dq Li inf ,
|
|
.Dq Li unlimited ,
|
|
.Dq Li unlimit
|
|
のいずれかを指定し、それ以外の場合は接尾子つきの数字を指定します。
|
|
サイズに関する値はデフォルトではバイトでの値となります。また以下の
|
|
接尾子の 1 つを付けることによってその単位となります。
|
|
.Pp
|
|
.Bl -tag -offset indent -width 4n -compact
|
|
.It Li b
|
|
512 バイトブロック。
|
|
.It Li k
|
|
キロバイト (1024 バイト)。
|
|
.It Li m
|
|
メガバイト (1024*1024 バイト)。
|
|
.It Li g
|
|
ギガバイト。
|
|
.It Li t
|
|
テラバイト。
|
|
.El
|
|
.Pp
|
|
.Va cputime
|
|
リソースについてはデフォルトでは秒による値となります。
|
|
また以下の接尾子を付加することにより、それぞれの単位で指定可能です。
|
|
有効な複数の単位指定を並べると、その和を指定したことになります:
|
|
.Pp
|
|
.Bl -tag -offset indent -width 4n -compact
|
|
.It Li s
|
|
秒。
|
|
.It Li m
|
|
分。
|
|
.It Li h
|
|
時間。
|
|
.It Li d
|
|
日。
|
|
.It Li w
|
|
週。
|
|
.It Li y
|
|
年 (365 日)。
|
|
.El
|
|
.Bl -tag -width ".Fl C Ar class"
|
|
.It Fl E
|
|
.Nm
|
|
は継承している環境を完全に無視します。
|
|
.It Fl a
|
|
特定のリソースの設定が指定されていても、
|
|
全てのリソースの設定を表示させます。
|
|
例えば、USENET ニュースシステムの立ち上げ時にコアダンプを無効にしたい
|
|
が、
|
|
.Dq Li news
|
|
アカウントに適用されるその他の全てのリソースの設定を行ない
|
|
たい場合は、次のように使います:
|
|
.Pp
|
|
.Dl "eval `limits -U news -aBec 0`"
|
|
.Pp
|
|
.Xr setrlimit 2
|
|
コールのように、スーパユーザのみが
|
|
.Dq hard
|
|
リソース制限を引き上げるこ
|
|
とができます。
|
|
root 以外のユーザはそれを引き下げるか、リソースの
|
|
.Dq soft
|
|
リミットを
|
|
hard リミットの範囲で変更することができます。
|
|
プログラムを実行する場合、
|
|
.Nm
|
|
が hard リミットを引き上げようとすると、それは致命的エラーとして扱われ
|
|
ます。
|
|
.El
|
|
.Sh 診断
|
|
.Nm
|
|
ユーティリティは、
|
|
ユーザが何らかの方法で誤使用をすると
|
|
.Dv EXIT_FAILURE
|
|
で終了します。
|
|
誤使用には不正なオプションを使用した場合や、同時に設定と表示のオプション
|
|
を指定した場合、または
|
|
.Fl e
|
|
がプログラムを起動する時に使われた場合などが含まれます。
|
|
表示モードもしくは評価モードにて実行されたとき、
|
|
.Nm
|
|
は
|
|
.Dv EXIT_SUCCESS
|
|
の終了ステータスで終了します。
|
|
コマンドモードで実行されコマンドの実行が成功したときには、終了ステータスは
|
|
実行されたプログラムが返すものになります。
|
|
.Sh 関連項目
|
|
.Xr csh 1 ,
|
|
.Xr env 1 ,
|
|
.Xr limit 1 ,
|
|
.Xr sh 1 ,
|
|
.Xr getrlimit 2 ,
|
|
.Xr setrlimit 2 ,
|
|
.Xr login_cap 3 ,
|
|
.Xr login.conf 5 ,
|
|
.Xr sysctl 8
|
|
.Sh バグ
|
|
明らかな理由により、
|
|
.Nm
|
|
ユーティリティは、
|
|
等号
|
|
.Pq Ql =
|
|
がその名称に含まれるコマンドを扱うことができません。
|
|
.Pp
|
|
評価用の出力が選択された場合、シェルを正しく認識し、そのシェルにとって
|
|
出力が正しいシンタックスとなるためには、
|
|
.Pa /proc
|
|
ファイルシステムがインストールされマウントされていなければなりません。
|
|
デフォルトの出力は
|
|
.Xr sh 1
|
|
にとって有効なものとなります。そのため、
|
|
.Pa /proc マウント前に
|
|
.Nm
|
|
を使用できるのは、標準の bourne シェルスクリプト中でのみとなります。
|
|
.Pp
|
|
.Nm
|
|
ユーティリティは、
|
|
出力や表示するリソースの設定が現在のユーザで有効であるかや、設定可能
|
|
であるかについては確認を行ないません。スーパユーザアカウントのみが
|
|
hard リミットを引き上げることができます。与えられた値が大きすぎる場合は
|
|
.Fx
|
|
カーネルは何も出力せずにその制限値を指定された値より低く設定します。
|