コマンド
limit
プロセスへの各種の制限を設定する。csh・tcsh の内部コマンド。
limit で設定できる制限値には、一般ユーザが変更できる(普通の)リミットと、root しか変更できないハードリミットがある。引数なしで limit を実行すると
% limit
cputime unlimited
filesize unlimited
datasize 16384 kbytes
stacksize 8192 kbytes
coredumpsize unlimited
memoryuse 30720 kbytes
descriptors 64
memorylocked 10240 kbytes
maxproc 64
と現在のリミット値が表示される。一方、-h オプションをつけると
% limit -h
cputime unlimited
filesize unlimited
datasize 131072 kbytes
stacksize 65536 kbytes
coredumpsize unlimited
memoryuse unlimited
descriptors 360
memorylocked 124084 kbytes
maxproc 179
とハードリミットが表示される。この状態では、最大プロセス数は64 (maxproc=64だから) だが、
とすることで、最大プロセス数を 179 にすることができる。しかし一般ユーザは
などとハードリミットを越える値をセットすることはできない。ハードリミットを変更することができるのは root のみである。
limit の各項目の意味以下の通り。
cputime
各プロセスが CPU を使うことのできる時間の上限
filesize
1つのファイルの長さの上限
datasize
sbrk(2) を用いてプログラムのテキスト領域の末尾を超えて増加させることのできる data+stack 領域のサイズの上限
stacksize
自動的に拡張されるスタックのサイズの上限
coredumpsize
コアダンプした際に作られるコアファイルのサイズの上限
で、コアダンプ時に core ファイルを生成しないようにすることができる。
memoryuse
各プロセスが使用できるメモリ使用量
descriptors
1ユーザが同時にオープン可能なファイル数の上限
memorylocked
???
maxproc
1ユーザが同時に実行可能なプロセス数の上限
値の単位は各項目ごとに異なる。cputime は
% limit cputime 1 1秒
% limit cputime 1m 1分
% limit cputime 1h 1時間
% limit cputime 1:1 1分1秒
で、maxproc・descriptors はそれぞれプロセス、デスクリプタの個数、その他は
% limit filesize 1 1キロバイト
% limit filesize 1m 1メガバイト
などと指定する。