来自https://unix.stackexchange.com/a/492346/674
Linux 等内核和 BSD 内核通过
/proc和中的文件提供有关进程的四个(相关)信息sysctl():
- 它的程序映像简称,又名用于流程记账的简称;
- 它的参数字符串,由
execve()运行时初始化并可修改;- 它的环境字符串,由
execve()运行时初始化并可修改;和- 其可执行程序映像文件的完整路径名。
中的哪个文件/proc(以及 的哪些参数sysctl())提供了这四条信息中的每一条?谢谢。
- 它的程序映像简称,又名用于流程记账的简称;
/proc/<pid>/comm
Run Code Online (Sandbox Code Playgroud)
- 它的参数字符串,由 execve() 初始化并在运行时可修改;
/proc/<pid>/cmdline
Run Code Online (Sandbox Code Playgroud)
- 它的环境字符串,由 execve() 初始化并在运行时可修改;和
/proc/<pid>/environ
Run Code Online (Sandbox Code Playgroud)
- 其可执行程序映像文件的完整路径名。
/proc/<pid>/exe
Run Code Online (Sandbox Code Playgroud)
(这是文件的符号链接)。
这些文件的其他技术细节可以在man 5 proc。
- 它的程序映像简称,又名用于流程记账的简称;
sysctl()与CTL_KERN、KERN_PROC和KERN_PROC_ALL/ KERN_PROC_PROCOID。sysctl -x kern.proc.all/proc/PID/status/compat/linux/proc/PID/status
- 它的参数字符串,由 execve() 初始化并在运行时可修改;
sysctl()与CTL_KERN、KERN_PROC和KERN_PROC_ARGSOID。/proc/PID/cmdline/compat/linux/proc/PID/cmdline
- 它的环境字符串,由 execve() 初始化并在运行时可修改;和
sysctl()与CTL_KERN、KERN_PROC和KERN_PROC_ENVOID。/compat/linux/proc/PID/environ
- 其可执行程序映像文件的完整路径名。
/proc/PID/file(这是文件的符号链接)。/compat/linux/proc/PID/exe