【 ulimit 】コマンド――ユーザーが使用できるリソースを制限するLinux基本コマンドTips(326)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ユーザーが使用できるリソースを制限する「ulimit」コマンドです。

» 2019年08月01日 05時00分 公開
[西村めぐみ@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ユーザーが使用できるリソースを制限する「ulimit」コマンドです。

ulimitコマンドとは?

 「ulimit」はユーザーが使用できるリソースを制限するコマンドです。ファイルの最大サイズや、使用できるメモリ、同時に実行できるプロセス数などを制限できます。

 なお、ulimitはbashの内部コマンド(ビルトインコマンド、シェルコマンド)であるため、「man」コマンドではなく、「help」コマンドで詳細を表示できます。



ulimitコマンドの書式

ulimit [オプション] [値]

※[ ]は省略可能な引数を示しています。





ulimitの主なオプション(全体)

短いオプション 意味
-a 現在設定されている値を全て表示する
-H 「強い制限(hard)」として設定する(制限を緩めるにはroot権限が必要になる、※1)
-S 「弱い制限(soft)」として設定する(強い制限の範囲内であれば、ユーザー自身が制限を緩めることが可能、※1)

※1 「-S」と「-H」のどちらも指定しなかった場合は、「-S」と「-H」を両方指定した扱いになる。



ulimitの主なオプション(個々の設定)

短いオプション 意味
-c 作成されるコアファイルの最大サイズ(512バイト単位のブロック数)
-d プロセスデータセグメントの最大サイズ(KB=1024バイト単位)
-e スケジュール優先度の最大値(nice値、※2)
-f シェルとシェルの子プロセスが書き込み可能なファイルサイズの最大値(ブロック数)
-i 保留できるシグナルの最大数
-l メモリにロックできるプロセスの最大サイズ(KB)
-m 利用できる最大のメモリサイズ(KB)
-n 同時にオープンできるファイル数
-p パイプのバッファーサイズ(512バイト単位のブロック数)
-q POSIXメッセージキューの最大バイト数
-r リアルタイムスケジュール優先度の最大値
-s スタックサイズの最大値(KB)
-t プロセスごとに利用できるCPU時間の最大値(秒数)
-u 実行可能なユーザープロセスの最大数
-v シェルとシェルの子プロセスが利用可能な仮想メモリの最大サイズ(KB)
-x ファイルロックの最大数

※2 「nice」コマンド(連載第134回)を参照。





現在の設定を確認する

 「ulimit -a」で現在の設定値をまとめて表示します(画面1)。個別の設定値を確認したい場合は「ulimit -u」(プロセス数)や「ulimit -f」(ファイルサイズ)など、知りたい値に対応したオプションを指定します。結果が「unlimited」となっている項目には上限が設定されていません。

 「ulimit」のみで実行すると、ユーザーが作成できるファイルの最大サイズを表示します(「ulimit -f」相当)。なお、これは1つのファイルに対する制限です。ディスク領域の利用制限ではありません。

コマンド実行例

ulimit -a

(現在の設定を表示する)(画面1


画面1 画面1 現在の設定値をまとめて表示したところ


現在の設定を変更する

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。