GETRLIMIT と ulimit
いろいろなシステム的制限を取得するのに使う。
(そのユーザの)プロセス数の最大を得るための例(超手抜き)
#include#include #include main(){ /* see Man of getrlimit */ struct rlimit rlim; getrlimit(RLIMIT_NPROC, &rlim); printf("Soft LIMIT-> %d\n", rlim.rlim_cur); printf("Hard LIMIT-> %d\n", rlim.rlim_max); return; }
うちのRHL7.3ではどっちも4095と出た。どこからやってきてる数値なのかはわからん…。
が、実際forkぼこぼこするやつを走らせたら、そのくらいでfork出来なくなった。
違うユーザで同じforkプログラムを走らせると、やっぱりそのくらいで限界がきた。
追記:
【ulimit -a】コマンドでいけるみたいだ…そうなのねん…orz
[]$ ulimit -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) 1024 pipe size (512 bytes, -p) 8 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 4095 virtual memory (kbytes, -v) unlimited