$ ruby -e ' loop { sleep 1 }' &
[1] 19638
上記の [1] 19638 がPIDだよね
別解:
$ ps auxf | grep -e PI[D] -e rub[y]
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ubuntu 19638 0.0 0.8 42016 8752 pts/1 Sl 10:48 0:00 \_ ruby -e loop { sleep 1 }
(3) そのプロセスについて、以下の情報を取得してみよう
(3.1) カレントディレクトリ (hint: /proc/PID/cwd)
$ sudo ls -l /proc/19638/cwd
lrwxrwxrwx 1 ubuntu ubuntu 0 Nov 13 10:50 /proc/19638/cwd -> /home/ubuntu
(3.2) 環境変数 (hint: /proc/PID/environ)
# environは \0 で区切られているので...
$ sudo ruby -e ' puts File.read("/proc/19638/environ").split("\0")'
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
SSH_CONNECTION=10.0.2.2 56253 10.0.2.15 22
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US.UTF-8
XDG_SESSION_ID=30
USER=ubuntu
PWD=/home/ubuntu
...
(3.3) メモリマッピング (hint: /proc/PID/maps)
$ sudo cat /proc/19638/maps
565427354000-565427355000 r-xp 00000000 08:01 16581 /usr/bin/ruby2.3
565427554000-565427555000 r--p 00000000 08:01 16581 /usr/bin/ruby2.3
565427555000-565427556000 rw-p 00001000 08:01 16581 /usr/bin/ruby2.3
565428e82000-56542927c000 rw-p 00000000 00:00 0 [heap]
7fb27cea0000-7fb27cea7000 r-xp 00000000 08:01 777526 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fb27cea7000-7fb27d0a6000 ---p 00007000 08:01 777526 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fb27d0a6000-7fb27d0a7000 r--p 00006000 08:01 777526 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fb27d0a7000-7fb27d0a8000 rw-p 00007000 08:01 777526 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/stringio.so
7fb27d0a8000-7fb27d0aa000 r-xp 00000000 08:01 777484 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fb27d0aa000-7fb27d2aa000 ---p 00002000 08:01 777484 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fb27d2aa000-7fb27d2ab000 r--p 00002000 08:01 777484 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fb27d2ab000-7fb27d2ac000 rw-p 00003000 08:01 777484 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/trans/transdb.so
7fb27d2ac000-7fb27d2ae000 r-xp 00000000 08:01 777441 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fb27d2ae000-7fb27d4ad000 ---p 00002000 08:01 777441 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fb27d4ad000-7fb27d4ae000 r--p 00001000 08:01 777441 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fb27d4ae000-7fb27d4af000 rw-p 00002000 08:01 777441 /usr/lib/x86_64-linux-gnu/ruby/2.3.0/enc/encdb.so
7fb27d4af000-7fb27d5b0000 rw-p 00000000 00:00 0
7fb27d5b0000-7fb27d6b8000 r-xp 00000000 08:01 2299 /lib/x86_64-linux-gnu/libm-2.24.so
7fb27d6b8000-7fb27d8b7000 ---p 00108000 08:01 2299 /lib/x86_64-linux-gnu/libm-2.24.so
7fb27d8b7000-7fb27d8b8000 r--p 00107000 08:01 2299 /lib/x86_64-linux-gnu/libm-2.24.so
7fb27d8b8000-7fb27d8b9000 rw-p 00108000 08:01 2299 /lib/x86_64-linux-gnu/libm-2.24.so
7fb27d8b9000-7fb27d8c2000 r-xp 00000000 08:01 2297 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7fb27d8c2000-7fb27dac1000 ---p 00009000 08:01 2297 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7fb27dac1000-7fb27dac2000 r--p 00008000 08:01 2297 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7fb27dac2000-7fb27dac3000 rw-p 00009000 08:01 2297 /lib/x86_64-linux-gnu/libcrypt-2.24.so
7fb27dac3000-7fb27daf1000 rw-p 00000000 00:00 0
7fb27daf1000-7fb27daf4000 r-xp 00000000 08:01 2298 /lib/x86_64-linux-gnu/libdl-2.24.so
7fb27daf4000-7fb27dcf3000 ---p 00003000 08:01 2298 /lib/x86_64-linux-gnu/libdl-2.24.so
7fb27dcf3000-7fb27dcf4000 r--p 00002000 08:01 2298 /lib/x86_64-linux-gnu/libdl-2.24.so
7fb27dcf4000-7fb27dcf5000 rw-p 00003000 08:01 2298 /lib/x86_64-linux-gnu/libdl-2.24.so
7fb27dcf5000-7fb27dd73000 r-xp 00000000 08:01 6451 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7fb27dd73000-7fb27df73000 ---p 0007e000 08:01 6451 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7fb27df73000-7fb27df74000 r--p 0007e000 08:01 6451 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7fb27df74000-7fb27df75000 rw-p 0007f000 08:01 6451 /usr/lib/x86_64-linux-gnu/libgmp.so.10.3.2
7fb27df75000-7fb27df8d000 r-xp 00000000 08:01 2310 /lib/x86_64-linux-gnu/libpthread-2.24.so
7fb27df8d000-7fb27e18d000 ---p 00018000 08:01 2310 /lib/x86_64-linux-gnu/libpthread-2.24.so
7fb27e18d000-7fb27e18e000 r--p 00018000 08:01 2310 /lib/x86_64-linux-gnu/libpthread-2.24.so
7fb27e18e000-7fb27e18f000 rw-p 00019000 08:01 2310 /lib/x86_64-linux-gnu/libpthread-2.24.so
...
7fb27e55a000-7fb27e7c3000 r-xp 00000000 08:01 16569 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fb27e7c3000-7fb27e9c2000 ---p 00269000 08:01 16569 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fb27e9c2000-7fb27e9c8000 r--p 00268000 08:01 16569 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fb27e9c8000-7fb27e9c9000 rw-p 0026e000 08:01 16569 /usr/lib/x86_64-linux-gnu/libruby-2.3.so.2.3.0
7fb27e9c9000-7fb27e9d9000 rw-p 00000000 00:00 0
7fb27e9d9000-7fb27e9ff000 r-xp 00000000 08:01 2291 /lib/x86_64-linux-gnu/ld-2.24.so
7fb27ea55000-7fb27ebf0000 r--p 00000000 08:01 10220 /usr/lib/locale/locale-archive
7fb27ebf0000-7fb27ebf4000 rw-p 00000000 00:00 0
7fb27ebf7000-7fb27ebf8000 ---p 00000000 00:00 0
7fb27ebf8000-7fb27ebfe000 rw-p 00000000 00:00 0
7fb27ebfe000-7fb27ebff000 r--p 00025000 08:01 2291 /lib/x86_64-linux-gnu/ld-2.24.so
7fb27ebff000-7fb27ec00000 rw-p 00026000 08:01 2291 /lib/x86_64-linux-gnu/ld-2.24.so
7fb27ec00000-7fb27ec01000 rw-p 00000000 00:00 0
7ffefd8b2000-7ffefe0b1000 rw-p 00000000 00:00 0 [stack]
7ffefe1d7000-7ffefe1d9000 r--p 00000000 00:00 0 [vvar]
7ffefe1d9000-7ffefe1db000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
(3.4) スレッドの数 (hint: /proc/PID/task)
# rubyプログラムは必ず2スレッド
$ sudo ls -l /proc/19638/task
total 0
dr-xr-xr-x 7 ubuntu ubuntu 0 Nov 13 10:54 19638
dr-xr-xr-x 7 ubuntu ubuntu 0 Nov 13 10:54 19639