Linux查看进程所在目录
通过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 /
COMMAND:
nginx是正在运行的进程的名称。PID:
9900是进程 ID。USER:
root是运行该进程的用户。FD:
cwd表示当前工作目录。TYPE:
DIR表示文件类型是一个目录。DEVICE:
253,1是设备号,表示文件所在的设备或分区。SIZE/OFF:
4096是目录的大小或偏移量。对于目录,通常表示目录的块大小。NODE:
2是文件系统节点号(inode)。NAME:
/是当前工作目录的路径。在这种情况下,表示进程9900的当前工作目录是根目录。
3. 通过 pwdx 命令查看进程的当前工作目录
执行pwdx PID命令,就得到进程的当前工作目录
[root@hw_centos7 /]# pwdx 9900
9900: /
nginx的运行程序在/目录下
Linux查看进程所在目录的更多相关文章
- linux 查看进程所在目录
一下内容转自:https://blog.csdn.net/spring21st/article/details/50561550 通过 ps 及 top 命令查看进程信息时,只能查到 相对路径,查不到 ...
- linux 查看当前所在目录的全路径
有时候,使用linux的shell的时候需要查看当前位置的全路径,可以使用 pwd命令 当然,知道了该命令就可以通过man pwd来查看该命令的全部帮助手册.
- Linux查看进程线程个数
1.根据进程号进行查询: # pstree -p 进程号 # top -Hp 进程号 2.根据进程名字进行查询: # pstree -p `ps -e | grep server | awk '{pr ...
- linux查看服务安装目录
linux查看服务安装目录server dir 假如我们想查看 Redis 的安装目录 如果用命令 which redis 或者 whereis redis 都找不到安装目录, 可使用以下办法: ps ...
- Linux 查看进程基本命令
https://www.cnblogs.com/zwgblog/p/5971455.html https://www.cnblogs.com/lcword/p/6046261.html https:/ ...
- Linux查看进程启动时间和运行多长时间
Linux 查看进程启动时间和运行多长时间 启动时间 ps -eo lstart 运行多长时间 ps -eo etime -bash-4.1$ ps -eo pid,lstart,etime | gr ...
- linux 查看进程启动时,用户的工作目录
在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep pyt ...
- 【转】linux 查看进程启动路径
在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep pyt ...
- Linux 查看进程运行的完整路径方法
通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等. 这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一 ...
- linux 查看进程启动路径
在linux下查看进程大家都会想到用 ps -ef|grep XXX 可是看到的不是全路径,怎么看全路径呢? 每个进程启动之后在 /proc下面有一个于pid对应的路径 例如:ps -ef|grep ...
随机推荐
- ASP.NET Core – Byte, Stream, Directory, File 基础
前言 以前的文章: Stream 基础和常用 和 IO 常用. 这篇主要是做一个整理, 方便要用的时候 warm up. 之前有讲过 Bit, Byte 的基本概念: Bit, Byte, ASCII ...
- 全网最适合入门的面向对象编程教程:49 Python函数方法与接口-函数与方法的区别和lamda匿名函数
全网最适合入门的面向对象编程教程:49 Python 函数方法与接口-函数与方法的区别和 lamda 匿名函数 摘要: 在 Python 中,函数和方法都是代码的基本单元,用于封装和执行特定的任务:它 ...
- @RequestBody注意事项
使用@RequestBody注解时,是用于接收Content-Type为application/json类型的请求,数据类型是JSON:{"aaa":"111" ...
- 第43天:WEB攻防-PHP应用&SQL注入&符号拼接&请求方法&HTTP头&JSON&编码类
#PHP-MYSQL-数据请求类型 SQL语句由于在黑盒中是无法预知写法的,SQL注入能发成功是需要拼接原SQL语句,大部分黑盒能做的就是分析后各种尝试去判断,所以有可能有注入但可能出现无法注入成功的 ...
- Android 基于 Choreographer 的渲染机制详解
本文介绍了 App 开发者不经常接触到但是在 Android Framework 渲染链路中非常重要的一个类 Choreographer.包括 Choreographer 的引入背景.Choreogr ...
- innerText 和 inner HTML 的区别
获取内容时: innerText会自动删除空格和换行:innerHTML会保留空格和换行: <body> <div>获 取内 容</div> <script& ...
- 激活windows教程
新建bat文件 [批处理文件:后缀是 bat ] 输入代码: slmgr/skms kms.03k.org slmgr/ato 然后以管理员运行 :
- Vue 如何实现组件切换的时候,让组件缓存,不会被销毁
使用场景:我们开发项目的时候,会遇到组件之间的切换,一般都是创建组件销毁组件来回切换 :但是现在需求是切换组件的时候,另一个组件不会销毁: 基于这个需求 ,我们使用 keep-live 组件包裹起来要 ...
- es6有哪些新特性?
1. let 和 ocnst ,可以定义块级作用域 2. 新增了箭头函数,箭头函数简化了函数定义的定义 3.新增了promise解决回调地狱问题 ps:回调地狱是我们异步请求服务器数据时,通过then ...
- K8s GPU 资源管理探索:在 KubeSphere 上部署 AI 大模型 Ollama
作者:运维有术星主 随着人工智能.机器学习.AI 大模型技术的迅猛发展,我们对计算资源的需求也在不断攀升.特别是对于需要处理大规模数据和复杂算法的 AI 大模型,GPU 资源的使用变得至关重要.对于运 ...