ulimit コマンドを使用すると、ユーザーは現在のシェルの制限を表示または削減できます。 root ユーザーのみが、指定されたハード制限を超えて制限を増やすことができます。設定された制限は、シェルの子プロセスにも適用されます。シェルのマニュアル ページには、ulimit コマンドの使用法に関する詳細情報が記載されています。bash のマニュアル ページからの抜粋を以下に示します。
ulimit [-HSTabcdefilmnpqrstuvx [limit]] Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. Options are interpreted as follows: -a All current limits are reported -b The maximum socket buffer size -c The maximum size of core files created -d The maximum size of a process’s data segment -e The maximum scheduling priority ("nice") -f The maximum size of files written by the shell and its children -i The maximum number of pending signals -l The maximum size that may be locked into memory -m The maximum resident set size (many systems do not honor this limit) -n The maximum number of open file descriptors (most systems do not allow this value to be set) -p The pipe size in 512-byte blocks (this may not be set) -q The maximum number of bytes in POSIX message queues -r The maximum real-time scheduling priority -s The maximum stack size -t The maximum amount of cpu time in seconds -u The maximum number of processes available to a single user -v The maximum amount of virtual memory available to the shell -x The maximum number of file locks -T The maximum number of thread
ulimit コマンドの構文は次のとおりです。
# ulimit [options] [limit]
ユーザーが自分のアカウントを制限するために ulimit コマンドを使用することはめったにないため、このコマンドのオプションは、出力が何を表示するかを理解することほど重要ではありません。さらに、一部の制限はほとんど使用されません。一般的に使用される制限を次の表に示します:
上限 | 説明 |
---|---|
fsize | メモリで許容される最大ファイル サイズ |
CPU | 許可される最大 CPU 時間 |
nproc | 同時実行プロセスの最大数 |
maxlogins | 同時ログインの最大数 |
たとえば、開いているファイル記述子の最大数に制限を設定するには:
# ulimit -n 512
次のコマンドを実行すると、現在の制限をすべて表示できます:
# ulimit -a
ulimit コマンドの実行中に以下のエラーが発生した場合:
ulimit: command not found
選択したディストリビューションに従って、以下のパッケージをインストールしてみてください:
分布 | コマンド |
---|---|
OS X | brew install bash |
Debian | apt-get インストール bash |
Ubuntu | apt-get インストール bash |
アルパイン | apk add bash |
Arch Linux | pacman -S bash |
カリ Linux | apt-get インストール bash |
CentOS | yum install bash |
Fedora | dnf インストール bash |
Raspbian | apt-get インストール bash |
ulimit コマンドの例
1. すべてのユーザー制限のプロパティを取得します:
# ulimit -a
2. 同時に開くファイル数のハード リミットを取得する:
# ulimit -H -n
3. 同時に開くファイル数のソフト制限を取得:
# ulimit -S -n
4. ユーザーごとの最大プロセス制限を設定します:
# ulimit -u 30
5. コア ダンプのサイズ制限を n 個の 512 バイト ブロックに設定します。
# ulimit –c n
6. データ領域のサイズ制限を n キロバイトに設定します。
# ulimit -d n
7. 子プロセス ファイルの書き込み制限を n 512 バイト ブロックに設定します (デフォルト):
# ulimit -f n
8. 物理メモリ サイズの制限を n キロバイトに設定します。
# ulimit -m n
9. スタック領域のサイズ制限を n キロバイトに設定します。
# ulimit -s n
10. プロセスの時間制限を n 秒に設定します。
# ulimit -t n