我正在探索 oracle 进程,它是 lsof 输出。我想知道是什么/proc/<pid>/cmdline
。为 oracle 的每个进程显示 145 个相同的 cmdline openfiles。
那么这到底是什么?
例如:
#lsof -u oracle | grep cmdline
oracle 2664 oracle 17r REG 0,3 0 9492 /proc/1/cmdline
oracle 2664 oracle 18r REG 0,3 0 9495 /proc/2/cmdline
.
.
.
oracle 12586 oracle 160r REG 0,3 0 20528 /proc/2614/cmdline
oracle 12586 oracle 161r REG 0,3 0 20529 /proc/2662/cmdline
# lsof -u oracle | grep cmdline | awk '{print $2}' | sort | uniq -c
145 12297
145 2664
145 2666
145 2670
145 2672
145 2674
145 2676
145 2678
145 2680
145 2682
145 2684
145 2686
145 2688
145 2690
145 2692
145 2694
145 2696
145 2698
145 2700
145 2702
145 2775
145 2777
145 2795
145 2799
145 2900
145 6323
答案1
从手册页中proc(5)
:
/proc/[pid]/cmdline
该只读文件保存进程的完整命令行,除非该进程是僵尸进程。在后一种情况下,该文件中没有任何内容:也就是说,读取该文件将返回 0 个字符。命令行参数在此文件中显示为一组由空字节 ('\0') 分隔的字符串,最后一个字符串后面还有一个空字节。