为什么所有的oracle进程都在读/proc//cmdline 多个系统进程?

为什么所有的oracle进程都在读/proc//cmdline 多个系统进程?

我正在探索 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') 分隔的字符串,最后一个字符串后面还有一个空字节。

相关内容