Linux中的如何对当前进程进行查看和监控——ps命令和pgrep命令
Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。...
Linux中进程的查看、监测
推荐一个Linux命令的查询手册:Linux命令大全(手册)
PID进程号
PID进程号的命名规则:
每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。
ps命令
Linux中要对当前进程进行查看和监控可以使用ps命令
(Process Status),它是最基本同时也是非常强大的进程查看命令。
ps命令
——核心功能:
ps命令
——用来列出系统中当前运行的那些进程。 具体而言:
可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。
ps命令
——静态的显示进程信息(即:执行ps命令的那个时刻的那些进程);如果想要动态的显示进程信息,就可以使用top命令
。
ps命令
——语法说明:
如果直接用ps命令
,会显示所有进程的状态,通常结合grep命令
查看某进程的状态。
ps aux
命令——输出格式,如下图所示:
# ps aux 命令的输出格式
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
参数说明:
- USER: 行程拥有者
- PID: 进程的ID
- %CPU: 占用的 CPU 使用率
- %MEM: 占用的记忆体使用率
- VSZ: 占用的虚拟记忆体大小
- RSS: 占用的记忆体大小
- TTY: 终端的次要装置号码 (minor device number of tty)
- STAT: 该行程的状态,linux的进程有5种状态:
- D 不可中断 uninterruptible sleep (usually IO)
- R 运行 runnable (on run queue)
- S 中断 sleeping
- T 停止 traced or stopped
- Z 僵死 a defunct (”zombie”) process
\quad
注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).
- START: 行程开始时间
- TIME: 执行的时间
- COMMAND: 所执行的指令
常见Linux语法使用:
ps a # 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A # 显示所有程序。
ps c # 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e # 此参数的效果和指定"A"参数相同。
ps e # 列出程序时,显示每个程序所使用的环境变量。
ps f # 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H # 显示树状结构,表示程序间的相互关系。
ps -N # 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s # 采用程序信号的格式显示程序状况。
ps S # 列出程序时,包括已中断的子程序资料。
ps -t # 指定终端机编号,并列出属于该终端机的程序的状况。
ps u # 以用户为主的格式来显示程序状况。
ps x # 显示所有程序,不以终端机来区分。
备注: ps
——显示当前状态处于running的进程,grep
——表示在这些处于running的进程里搜索,而ps aux
——则是显示所有进程和其状态。
最常用的方法是ps -aux
命令,然后再利用一个管道符号
导向到grep
去查找特定的进程,然后再对特定的进程进行操作。
典型范例:
1、检查指定的shell脚本是否在运行,并输出对应的pid进程号
ps aux | grep "aa.sh" # 假设输出PID为1203
2、杀死指定pid号的进程
kill -s 9 pid # pid表示要杀死的PID进程号,例如:12301
终止进程—kill 命令用于终止进程
例如: kill -9 [PID] \quad \quad # -9 表示强迫进程立即停止
pgrep命令
pgrep
命令——匹配其程序名,找到匹配的进程id。即:通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。
pgrep命令
——语法说明:
pgrep(选项)(参数)
参数说明:
(选项)
——常见的使用参数:
选项 | 描述 |
---|---|
-o | 仅显示找到的最小(起始)进程号; |
-n | 仅显示找到的最大(结束)进程号; |
-l | 显示进程名称; |
-P | 指定父进程号; |
-g | 指定进程组; |
-t | 指定开启进程的终端; |
-u | 指定进程的有效用户ID。 |
(参数)
——常见的使用参数:
进程名称:指定要查找的进程名称,同时也支持类似grep命令
中的匹配模式。
典型范例:
# 以查找运行的shell进程为例:
pgrep -lo sh # 显示最小进程号的一个shell进程
pgrep -ln sh # 显示最大进程号的一个shell进程
pgrep -l sh # 列出所有httpd进程
pgrep sh # 列出所有httpd进程,并且不显示进程名称
pgrep -f sh # 匹配出含shell的进程,并输出对应的pid进程号
最常用的方法是pgrep -f name
命令,如果需要查找到 pid 之后 kill 掉该进程,还可以使用pkill命令
,具体为:pkill -f name
。如果是可执行程序的话,可以直接使用 pidof name
命令。
参考链接:Linux pgrep命令
LINUX下PS -EF和PS AUX的区别及格式详解
Linux下显示系统进程的ps命令
,最常用的有ps -ef
和ps aux
。这两个到底有什么区别呢?
两者没太大差别,之所以存在不同,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux
最初用到Unix Style中,而ps -ef
被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
ps -ef # 通过System V Style风格显示进程
ps aux # 通过Unix Style风格显示进程
参考链接:
LINUX下PS -EF和PS AUX的区别及格式详解
top命令
top 命令
用于实时监控系统资源使用状况,包含:进程,cpu,内存等。
top命令
——语法说明:
top [选项]
[选项]
——常见的使用参数:
选项 | 描述 |
---|---|
-b | 以批处理模式操作 |
-c | 显示完整的治命令 |
-d | 屏幕刷新间隔时间 |
-I | 忽略失效过程 |
-s | 保密模式 |
-S | 累积模式 |
-i<时间> | 设置刷新间隔时间 |
-u<用户名> | 指定用户名 |
-p<进程号> | 指定进程 |
-n<次数> | 循环显示的次数 |
在
top命令
中的常用快捷键:
h 显示快捷键帮助
k 终止一个进程
i 开/关忽略闲置和僵死进程
q 退出程序
r 重新安排一个进程的优先级别
S 切换到累计模式
s 更改刷新间隔时间,单位秒
f,F 从当前显示中添加或者删除项目
o,O 改变显示项目的顺序
l 切换显示平均负载和启动时间信息
m 切换显示内存信息
t 切换显示进程和CPU状态信息
c 切换显示命令名称和完整命令行
M 根据内存使用大小排序
P 根据CPU使用率进行排序 (默认排序)
T 根据时间/累计时间进行排序
w 将当前设置写入~/.toprc文件中
1 展开多核cpu显示
更多推荐
所有评论(0)