Linux-进程管理-ps命令
0.摘要
ps命令用于查看系统中的进程,经常与grep、kill、sort等命令配合,完成进程管理任务。
1.ps命令
ps:Process Status,ps命令用来列出系统中当前运行的进程。可以查看进程的运行状态,占用资源等情况。
注意:ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
linux上进程有5种状态:
序号 | 状态 | 说明 |
1 | 运行 | 正在运行或在运行队列中等待 |
2 | 中断 | 休眠中, 受阻, 在等待某个条件的形成或接受到信号 |
3 | 不可中断 | 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生 |
4 | 僵死 | 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放 |
5 | 停止 | 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行 |
ps工具标识进程的5种状态码:
序号 | 状态码 | 说明 |
1 | D | 不可中断 uninterruptible sleep (usually IO) |
2 | R | 运行 runnable (on run queue) |
3 | S | 中断 sleeping |
4 | T | 停止 traced or stopped |
5 | Z | 僵死 a defunct (”zombie”) process |
2.ps命令参数
参数 | 释义 |
a | 显示现行终端机下的所有程序,包括其他用户的程序 |
-A | 显示所有程序 |
c | 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示 |
-e | 此参数的效果和指定"-A"参数相同 |
e | 列出程序时,显示每个程序所使用的环境变量 |
f | 用ASCII字符显示树状结构,表达程序间的相互关系 |
-H | 显示树状结构,表示程序间的相互关系 |
-N | 显示所有的程序,除了执行ps指令终端机下的程序之外 |
s | 采用程序信号的格式显示程序状况 |
S | 列出程序时,包括已中断的子程序资料 |
-t | 指定终端机编号,并列出属于该终端机的程序的状况 |
u | 以用户为主的格式来显示程序状况 |
x | 显示所有程序,不以终端机来区分 |
例如,输入ps aux,查看所有进程:
3.查找进程
由于进程数量较多,通常借助于管道“|”和grep命令进行二次筛选。
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并按行打印) ,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。https://www.cnblogs.com/kongzhongqijing/articles/4462793.html
ps -aux | grep python # 查看包含python关键词的进程
4.kill进程
使用kill命令,可以杀掉进程:
kill 1123 # 杀掉PID=1123的进程
kill -9 1123 # 强制杀掉PID=1123的进程
5.排序
ps aux命令输出的第一行标注了每一个进程的详细信息。
通过sort命令,可以按照不同的标准,对ps的输出内容进行排序。
比如,按照CPU占用排序:
ps aux | sort -k3r
# k3表示按照第3项进行排序,即按照CPU占用率排序
# r表示反序,占用CPU最多的进程显示在前面。
参考链接:
https://www.cnblogs.com/aipiaoborensheng/p/7676364.html
https://www.cnblogs.com/shujuxiong/p/8983103.html