2017年12月28日 星期四

Bash Shell | 如何取得 process 資訊

/proc 是取得 process 資訊的好地方,可以查看 process 開啟了哪些 file descriptor 或是執行時帶了哪些參數,process 的 group ID 與 session ID 等等。

範例:

1. 查看 file descriptor

ls -l /proc/[pid]/fd

範例:

ls -l /proc/$$/fd

結果:

total 0
lrwx------. 1 william william 64 Dec 28 21:43 0 -> /dev/pts/0
lrwx------. 1 william william 64 Dec 28 21:43 1 -> /dev/pts/0
lrwx------. 1 william william 64 Dec 28 21:42 2 -> /dev/pts/0
lrwx------. 1 william william 64 Nov 30 20:53 255 -> /dev/pts/0


2. 執行時參數

cat /proc/[pid]/cmdline

範例:

cat /proc/$(pidof ntpd)/cmdline 

結果:

ntpd-untp:ntp-p/var/run/ntpd.pid-g

3. group ID 與 session ID

cat /proc/[pid]/stat

範例:

cat /proc/$$/stat

結果:

3779 (bash) S 3777 3779 3779 34816 14474 4202496 41588 727153 1 35 271 281 3134 1949 20 0 1 0 2350634 5517312 482 4294967295 134508544 135363948 3218920976 3218920004 11592726 0 65536 3686404 1266761467 3225663865 0 0 17 0 0 0 1 0 0

完整資訊可以執行 man 5 proc 來查看

沒有留言:

張貼留言