从https://unix.stackexchange.com/a/492346/674
/proc
Linux 等内核和 BSD 内核通过和中的文件提供有关进程的四个(相关)信息sysctl()
:
- 它的程序映像简称,又名用于流程记账的简称;
- 它的参数字符串,由
execve()
运行时初始化并可修改;- 它的环境字符串,由
execve()
运行时初始化并可修改;和- 其可执行程序映像文件的完整路径名。
中的哪个文件/proc
(以及 的哪些参数sysctl()
)提供了这四条信息中的每一条?谢谢。
答案1
在 Linux 上:
- 它的程序映像简称,又名用于流程记账的简称;
/proc/<pid>/comm
- 它的参数字符串,由 execve() 初始化并在运行时可修改;
/proc/<pid>/cmdline
- 它的环境字符串,由 execve() 初始化并在运行时可修改;和
/proc/<pid>/environ
- 其可执行程序映像文件的完整路径名。
/proc/<pid>/exe
(这是文件的符号链接)。
这些文件的其他技术细节可以在man 5 proc
。
在 FreeBSD 上:
- 它的程序映像简称,又名用于流程记账的简称;
sysctl()
与CTL_KERN
、KERN_PROC
和KERN_PROC_ALL
/KERN_PROC_PROC
OID。- 可转储与
sysctl -x kern.proc.all
- 中的字段之一。
/proc/PID/status
- (如果安装了兼容性) 中的字段之一。
/compat/linux/proc/PID/status
- 它的参数字符串,由 execve() 初始化并在运行时可修改;
sysctl()
与CTL_KERN
、KERN_PROC
和KERN_PROC_ARGS
OID。- 还。
/proc/PID/cmdline
- (如果安装了兼容性)。
/compat/linux/proc/PID/cmdline
- 它的环境字符串,由 execve() 初始化并在运行时可修改;和
sysctl()
与CTL_KERN
、KERN_PROC
和KERN_PROC_ENV
OID。- (如果安装了兼容性)。
/compat/linux/proc/PID/environ
- 其可执行程序映像文件的完整路径名。
/proc/PID/file
(这是文件的符号链接)。- (如果安装了兼容性)。
/compat/linux/proc/PID/exe