こんにちは。ヤマヤタケシです。
ふと思い出したのですが、Unix系OSってすべてはファイルという思想を思い出しました。
Linuxでプロセスの情報を取得する方法はいろいろありますけど、/procのファイルをcatするのも良いですね。
ps ax | grep 目的の実行ファイル プロセスのIDを取得して、 cd /proc/PID cat limits /proc/20987# cat limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited ms Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 4028 4028 processes Max open files 1024 1024 files Max locked memory 32768 32768 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 4028 4028 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us
おぉ、最大に開けるファイルの数は、1024なんだね!
スタックのサイズは、8MBなんだね!
あとはいろいろ、無制限なんだね!
こんかいはdnsmasqをのぞいています。
eeepc4g:/proc/20987# cat status Name: dnsmasq State: S (sleeping) Tgid: 20987 Pid: 20987 PPid: 1 TracerPid: 0 Uid: 105 105 105 105 Gid: 30 30 30 30 FDSize: 32 Groups: VmPeak: 4416 kB VmSize: 4412 kB VmLck: 0 kB VmHWM: 760 kB VmRSS: 760 kB VmData: 172 kB VmStk: 88 kB VmExe: 144 kB VmLib: 1868 kB VmPTE: 20 kB Threads: 1 SigQ: 0/4028 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000000001000 SigCgt: 0000000000016a01 CapInh: 0000000000000000 CapPrm: 0000000000003000 CapEff: 0000000000003000 CapBnd: ffffffffffffffff Cpus_allowed: 01 Cpus_allowed_list: 0 Mems_allowed: 1 Mems_allowed_list: 0 voluntary_ctxt_switches: 738 nonvoluntary_ctxt_switches: 8
見える!
お前のメモリ使用量が見えるぞ!