通过ps 或 top 查看进程信息时,只能查到进程的相对路径,查不到进程的详细信息,如绝对路径等,我们可以通过下面的方法进行查询

1. 通过ll /proc/PID 命令查看进程所在的目录位置

linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程信息,其中包括一个名为exe的文件即记录了进程的绝对路径,通过ls -la 即可查看

查看进程pid

[root@hw_centos7 ~]# ps -ef |grep nginx |grep -v grep
root 9900 1 0 Dec05 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www 9901 9900 0 Dec05 ? 00:00:00 nginx: worker process
www 9902 9900 0 Dec05 ? 00:00:00 nginx: worker process

如上 获取到主进程PID 9900

根据 PID 查看进程目录

[root@hw_centos7 ~]# ll -a /proc/9900
total 0
dr-xr-xr-x 9 root root 0 Dec 5 23:27 .
dr-xr-xr-x 120 root root 0 Nov 3 00:58 ..
dr-xr-xr-x 2 root root 0 Dec 6 18:00 attr
-rw-r--r-- 1 root root 0 Dec 6 18:00 autogroup
-r-------- 1 root root 0 Dec 6 18:00 auxv
-r--r--r-- 1 root root 0 Dec 5 23:27 cgroup
--w------- 1 root root 0 Dec 6 18:00 clear_refs
-r--r--r-- 1 root root 0 Dec 6 17:59 cmdline
-rw-r--r-- 1 root root 0 Dec 6 18:00 comm
-rw-r--r-- 1 root root 0 Dec 6 18:00 coredump_filter
-r--r--r-- 1 root root 0 Dec 6 18:00 cpuset
lrwxrwxrwx 1 root root 0 Dec 6 18:00 cwd -> /
-r-------- 1 root root 0 Dec 6 18:00 environ
lrwxrwxrwx 1 root root 0 Dec 6 18:00 exe -> /usr/sbin/nginx

如上 exe 后面显示了该进程所在的目录/usr/sbin/nginx

cwd 符号链接的是进程运行目录

exe 符号链接后面是执行程序的绝对路径

cmdline 就是程序运行时输入的命令行命令

environ 记录了进程运行时的环境变量

fd目录下是进程打开或使用的文件的符号连接;

2. 通过lsof 命令查看进程的当前目录

lsof是 “list of open files “的缩写,是一个命令行工具,用于显示系统中进程当前打开的文件信息。lsof可以显示进程的当前工作目录

[root@hw_centos7 ~]# ps -ef|grep nginx|grep -v grep
root 9900 1 0 Dec05 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www 9901 9900 0 Dec05 ? 00:00:00 nginx: worker process
www 9902 9900 0 Dec05 ? 00:00:00 nginx: worker process

根据进程号9900进行查找该进程所在的目录

[root@hw_centos7 ~]# lsof -a -d cwd -p 9900
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 9900 root cwd DIR 253,1 4096 2 /

在你的命令行输入中:

[root@hw_centos7 ~]# lsof -a -d cwd -p 9900

你使用了 lsof(List Open Files)命令来查看与进程相关的文件信息。具体来说,你是在查看进程 ID 为 9900 的进程当前工作目录(cwd)。下面是对这个命令的参数和输出的解释:

解释命令参数

  • lsof:这是一个用于列出当前系统打开文件的命令行工具。每一个进程打开的文件都可以通过 lsof 来查看,包括常规文件、目录、网络文件、设备等。

  • -a:逻辑与。“and”选项,表示需要同时满足多个条件。这里要求满足 -d-p 的同时条件。

  • -d cwd:指定文件描述符类型为 cwd(Current Working Directory),表示显示当前工作目录。

  • -p 9900:指定进程 ID 为 9900,表示只列出与此特定进程相关的打开文件。

输出解释

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx 9900 root cwd DIR 253,1 4096 2 /
  • COMMANDnginx 是正在运行的进程的名称。

  • PID9900 是进程 ID。

  • USERroot 是运行该进程的用户。

  • FDcwd 表示当前工作目录。

  • TYPEDIR 表示文件类型是一个目录。

  • DEVICE253,1 是设备号,表示文件所在的设备或分区。

  • SIZE/OFF4096 是目录的大小或偏移量。对于目录,通常表示目录的块大小。

  • NODE2 是文件系统节点号(inode)。

  • NAME/ 是当前工作目录的路径。在这种情况下,表示进程 9900 的当前工作目录是根目录。

3. 通过 pwdx 命令查看进程的当前工作目录

执行pwdx PID命令,就得到进程的当前工作目录

[root@hw_centos7 /]# pwdx 9900
9900: /

nginx的运行程序在/目录下

Linux查看进程所在目录的更多相关文章

  1. linux 查看进程所在目录

    一下内容转自:https://blog.csdn.net/spring21st/article/details/50561550 通过 ps 及 top 命令查看进程信息时,只能查到 相对路径,查不到 ...

  2. linux 查看当前所在目录的全路径

    有时候,使用linux的shell的时候需要查看当前位置的全路径,可以使用 pwd命令 当然,知道了该命令就可以通过man pwd来查看该命令的全部帮助手册.

  3. Linux查看进程线程个数

    1.根据进程号进行查询: # pstree -p 进程号 # top -Hp 进程号 2.根据进程名字进行查询: # pstree -p `ps -e | grep server | awk '{pr ...

  4. linux查看服务安装目录

    linux查看服务安装目录server dir 假如我们想查看 Redis 的安装目录 如果用命令 which redis 或者 whereis redis 都找不到安装目录, 可使用以下办法: ps ...

  5. Linux 查看进程基本命令

    https://www.cnblogs.com/zwgblog/p/5971455.html https://www.cnblogs.com/lcword/p/6046261.html https:/ ...

  6. Linux查看进程启动时间和运行多长时间

    Linux 查看进程启动时间和运行多长时间 启动时间 ps -eo lstart 运行多长时间 ps -eo etime -bash-4.1$ ps -eo pid,lstart,etime | gr ...

  7. linux 查看进程启动时,用户的工作目录

    在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep pyt ...

  8. 【转】linux 查看进程启动路径

    在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep pyt ...

  9. Linux 查看进程运行的完整路径方法

    通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等. 这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一 ...

  10. linux 查看进程启动路径

    在linux下查看进程大家都会想到用 ps -ef|grep XXX 可是看到的不是全路径,怎么看全路径呢? 每个进程启动之后在 /proc下面有一个于pid对应的路径 例如:ps -ef|grep ...

随机推荐

  1. 如何用VMWARE创建一个Linux虚拟机

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们都是需要接触Linux服务器的,一般部署应用都是部署在Linux服务器上的~ 但一般的服务器要么需要购买,要么只是公司里的,那么有没有免费的L ...

  2. nginx缓存加速笔记

    目录 1 服务端缓存原理 1.1 定义一个缓存目录 1.2 启用缓存 1.3 Nginx 作反代 1.4 缓存一时爽,全家火葬场. 1.5 ngx_cache_purge 1 服务端缓存原理 主要是缓 ...

  3. USB2.0 DP DM VBUS

    在USB 2.0中,设备成功枚举的标志可以通过观察 D+ (dp).D- (dm) 和 VBUS 引脚的电压波形来判断.以下是这些信号在USB 2.0枚举过程中常见的状态: VBUS (5V供电): ...

  4. 高通dump ftrace & kernelshark使用

    简介 高通 ramdump 可以解析出 ftrace,方便用于追踪 快省稳 问题. kernelshark 是一个可以查看 trace event 的图形化工具,方便梳理和观察内核微观行为. trac ...

  5. 墨天轮沙龙 | SphereEx代野:Apache ShardingSphere-从中间件到分布式生态演进之路

    在9月22日举办的[墨天轮数据库沙龙第十期-国产中间件专场]中,SphereEx 解决方案专家 代野分享了Apache ShardingSphere:从中间件到分布式生态演进之路>主题演讲,本文 ...

  6. 什么是 DOM

    百度: DOM 定义:文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口.它是一种与平台和语言无关的应用程序接口(API),它可 ...

  7. 区分::after和:before中的单冒号和双冒号的作用

    单冒号:一般指的是伪类,如鼠标悬停状态设置样式:选择器:hover {设置样式} 双冒号一般指伪元素,给元素的前面/后面添加内容.内容数据按堆栈数据结构存储.

  8. 5.flask 源码解析:请求

    目录 一.flask 源码解析:请求 1.1 简介 1.2 请求 Flask 源码分析完整教程目录:https://www.cnblogs.com/nickchen121/p/14763457.htm ...

  9. JavaScript原型链污染探讨

    如果你想弄明白什么怎样才可以实现JavaScript的原型链污染,那么你首先需要弄清楚两个东西,那就是__proto__和prototype. 到底什么才是__proto__和prototype? 那 ...

  10. 云原生周刊:CNCF 宣布 Cilium 毕业 | 2023.10.16

    开源项目推荐 Reloader Reloader 是一个 Kubernetes 控制器,用于监控 ConfigMap 和 Secrets 中的变化,并对 Pod 及其相关部署.StatefulSet. ...