ulimitコマンド

概要

ulimitとは、プロセスへの各種の制限を設定します。

...個人的にはあまりありがたみが感じられないのでちょこっとググってみたらこんな文章が。

プロセスがメモリやCPUタイム等を多く消費しないようにするために、ユーザごとに制限を 設定することができます。 (https://www.express.nec.co.jp/linux/distributions/knowledge/system/ulimit.html)

いわゆる昔のような今ほどメモリが大きくない頃には活用していたのでしょうか。

実行例

limit -a

上記のようにすると現在の設定を確認することができます。

私の環境では以下のような出力がされました。

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1418
virtual memory          (kbytes, -v) unlimited

出力されたものは変更ができます。例えばcoreファイルのサイズを制限したい時は、

ulimit -c 1024

このように指定します。...が、数値がブロックサイズであるとかなんとか、ちょっとよくわからなかったので宿題になりそうです。

2019/02/24追記 職場の先輩に聞いてみました→ブロックサイズについて尋ねてみた

まとめ

現在のプロセスの制限設定を確認する

ilimit -a

特定のプロセスの制限を設定する

ulimit [プロセスを示すオプション] [値]