在 CentOS 7.9 上,可以通过多种方法查看进程的执行文件路径。以下是几种常用的方法及其详细说明:
方法 1:使用 ps 命令
ps 命令可以列出当前系统中的进程信息,结合 ps 的 -o 选项可以显示进程的完整路径。
ps -o pid,comm,args -p
pid:进程 ID。
comm:进程名称。
args:进程的完整命令行参数,包括路径。
:需要查询的进程 ID。
示例
假设你想查询进程 ID 为 1234 的进程的执行文件路径:
ps -o pid,comm,args -p 1234
输出可能如下:
PID COMMAND COMMAND
1234 /usr/bin/nginx /usr/bin/nginx -c /etc/nginx/nginx.conf
方法 2:使用 pwdx 命令
pwdx 命令可以直接显示进程的当前工作目录。
pwdx
示例
假设你想查询进程 ID 为 1234 的进程的当前工作目录:
pwdx 1234
输出可能如下:
1234: /path/to/working/directory
方法 3:使用 readlink 命令
readlink 命令可以解析符号链接,结合 /proc//exe 文件可以获取进程的执行文件路径。
readlink -f /proc//exe
示例
假设你想查询进程 ID 为 1234 的进程的执行文件路径:
readlink -f /proc/1234/exe
输出可能如下:
/usr/bin/nginx
方法 4:使用 ls 命令
ls 命令也可以查看 /proc//exe 文件的链接目标。
ls -l /proc//exe
示例
假设你想查询进程 ID 为 1234 的进程的执行文件路径:
ls -l /proc/1234/exe
输出可能如下:
lrwxrwxrwx 1 root root 0 Jan 1 12:34 /proc/1234/exe -> /usr/bin/nginx
方法 5:使用 lsof 命令
lsof 命令可以列出进程打开的文件,包括执行文件路径。
lsof -p | grep exe
示例
假设你想查询进程 ID 为 1234 的进程的执行文件路径:
lsof -p 1234 | grep exe
输出可能如下:
nginx 1234 root 10r REG 253,0 123456 123456 /usr/bin/nginx
方法 6:使用 pgrep 和 ps 结合
如果你不知道进程 ID,但知道进程名称,可以使用 pgrep 和 ps 结合查询。
pgrep -a <process_name>
示例
假设你想查询名为 nginx 的进程的执行文件路径:
pgrep -a nginx
输出可能如下:
1234 /usr/bin/nginx -c /etc/nginx/nginx.conf
总结 如果你已知进程 ID,可以使用 ps、readlink 或 ls。
如果你不知道进程 ID,可以使用 pgrep 结合 ps。
lsof 也可以用于查询进程的执行文件路径。