Linux| Linux中获取运行进程的 环境变量, 参数, 端口_YvesHe的专栏

CSDN博客 · · 118 次点击 · · 开始浏览    


一.查看 环境变量, 参数

1.ps命令的方式获取信息: 执行目录, 环境变量, 完整的命令行

ps eww -p <process_pid> : 返回某个进程的执行时的环境变量完整的命令行

参数说明
e 显示环境以及传递给命令的参数,最多不超过 80 个字符。
eww 将 e 标志中的显示内容换行并显示 ENV 列表,直至该标志达到 LINE_MAX 值。
-p proclist 仅显示有关 proclist 指定的进程号的进程的信息。proclist 的值必须为数字。
更多详细参数参考: https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_71/com.ibm.aix.cmds4/ps.htm#ps__row-d3e110413
无权限的用户执行时,只会显示完整的命令行:
在这里插入图片描述
有权限的用户会显示命令行+环境变量信息:
在这里插入图片描述

2.查看文件的方式获取信息: 执行目录, 环境变量, 完整的命令行

通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。这时,我们需要通过以下的方法来查看进程的详细信息:
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。

ll /proc/<process_pid>
在这里插入图片描述

	cwd     符号链接的是进程运行目录;
	exe     符号连接就是执行程序的绝对路径;
	cmdline 就是程序运行时输入的命令行命令;
	environ 记录了进程运行时的环境变量;
	fd      目录下是进程打开或使用的文件的符号连接。

	cwd       链接的是启动进程的目录(也就是输入命令行所在的目录)
	environ:  记录该进程当时所有环境变量(常用 tr '\0' '\n' < /proc/<process_pid>/environ 命令将环境变量一个属性一行的显示)
	cmdline:  运行进程当时执行的完整命令

对比使用ps命令来获取信息,命令ps eww -p <process_pid>包含了绝对路径的命令环境变量


二.查看端口

使用ss命令查看监听端口/usr/sbin/ss -rtnlp | grep <process_pid>
在这里插入图片描述


ps aux 命令展示项说明

[yveshe@yveshe ~]$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3  51708  3368 ?        Ss   Jan21   1:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Jan21   0:00 [kthreadd]
...

说明:
• USER:该 process 属于那个使用者账号
• PID :该 process 的ID
• %CPU:该 process 使用掉的 CPU 资源百分比;
• %MEM:该 process 所占用的物理内存百分比;
• VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
• RSS :该 process 占用的固定的内存量 (Kbytes)
• TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
• STAT:该程序目前的状态,主要的状态有:
o R :该程序目前正在运作,或者是可被运作;
o S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号 (signal) 唤醒。
o T :该程序目前正在侦测或者是停止了;
o Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
• START:该 process 被触发启动的时间;
• TIME :该 process 实际使用 CPU 运作的时间。
• COMMAND:该程序的实际指令


STAT 进程状态(有以下几种)
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换(从内核2.6开始无效);
X 死掉的进程(从来没见过);
Z 僵尸进程;


< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)


118 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传