共计 1401 个字符,预计需要花费 4 分钟才能阅读完成。
前几天有位小伙伴找我,说服务器有个进程占用 CPU 特别高,让我给分析是不是被黑了。分析进程之前先找出进程路径是必不可少的做法,这篇文章分享下 Linux 查看进程路径的方法。
ps 命令查看进程
ps 命令用于报告当前系统的进程状态,我们先用 ps 命令 (ps -ef
) 找出 nginx
进程的 PID 号。
[root@sharktech ~]# ps -ef|grep 'nginx'
root 10837 1 0 Nov01 ? 00:00:00 nginx: master process nginx
www 10838 10837 24 Nov01 ? 2-17:32:59 nginx: worker process
www 10839 10837 0 Nov01 ? 00:00:36 nginx: cache manager process
root 10939 10879 0 19:15 pts/1 00:00:00 grep --color=auto nginx
我们可以看到 nginx master 的进程 ID 为 10837
将其记录下来后面需要使用。
查看进程路径
Linux 在启动一个进程时,系统会在 /proc 下创建一个以 PID 命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为 exe 的文件即记录了绝对路径,通过 ll 或 ls –l 命令即可查看。上一个步骤我们已经获取 nginx 进程 ID 为 10837
,使用ls
命令来查看下有什么东东。
[root@sharktech ~]# ls -l /proc/10837
total 0
dr-xr-xr-x. 2 root root 0 Nov 12 19:19 attr
-rw-r--r--. 1 root root 0 Nov 12 19:19 autogroup
-r--------. 1 root root 0 Nov 12 19:19 auxv
-r--r--r--. 1 root root 0 Nov 12 19:19 cgroup
--w-------. 1 root root 0 Nov 12 19:19 clear_refs
-r--r--r--. 1 root root 0 Nov 12 19:19 cmdline
-rw-r--r--. 1 root root 0 Nov 12 19:19 comm
-rw-r--r--. 1 root root 0 Nov 12 19:19 coredump_filter
-r--r--r--. 1 root root 0 Nov 12 19:19 cpuset
lrwxrwxrwx. 1 root root 0 Nov 12 19:19 cwd -> /root
-r--------. 1 root root 0 Nov 12 19:19 environ
lrwxrwxrwx. 1 root root 0 Nov 12 19:19 exe -> /usr/local/nginx/sbin/nginx
dr-x------. 2 root root 0 Nov 12 19:19 fd
dr-x------. 2 root root 0 Nov 12 19:19 fdinfo
其中我们可以看到 exe -> /usr/local/nginx/sbin/nginx
,这里的exe
软连接所指向的路径 usr/local/nginx/sbin/nginx
即是 nginx 进程所在路径。该目录下的文件(夹)含义如下:
- cwd 符号链接的是进程运行目录;
- exe 符号连接就是执行程序的绝对路径;
- cmdline 就是程序运行时输入的命令行命令;
- environ 记录了进程运行时的环境变量;
- fd 目录下是进程打开或使用的文件的符号连接。
此文部分内容参考了:Linux 查看进程运行的完整路径方法
正文完
星哥玩云-微信公众号