作用:查看系统进程,比如正在运行的进程有哪些,什么时候开始运行的,哪个用户运行的,占用了多少资源。
参数:
ps命令常用的方式有三种:
ps -ef
:查看所有进程ps -aux
:查看所有进程ps -ef | grep tomcat
:查看指定进程ps -ef
字段解释:
ps -aux
字段解释:
ps -ef
通常会配合 grep
来过滤指定的进程,比如
搜索 mysql 的进程:ps -ef | grep mysql
搜索 tomcat 的进程:ps -ef | grep tomcat
1)查看进程的时候,让进程按照CPU使用率排序,然后展示前10行,就能清晰地看到哪些进程占用的资源比较多。
PS1:head -11
是因为标题也算一行
PS2:+
、-
号可以调整排序,-pcpu
表示降序,+pcpu
表示升序
ps -aux --sort=-pcpu | head -11
2)同理,把 -pcpu
换成 -pmem
,就能查看内存使用最多的10个进程。
ps -aux --sort=-pmem | head -11
3)如果不限制行数,也可以使用 sort
按照指定的列排序
降序:
ps -aux | sort -nk 4 -r
升序:
ps -aux | sort -nk 4
查看某个用户开启了哪些进程,可以使用 -u
参数指定用户名,比如,查看root用户的进程有哪些:
ps -u root -ef
除了 grep 外,还可以配合 more 分页查看进程:ps -ef | more
翻页的操作同 more 命令,q键退出,空格键翻页
TTY字段表示运行进程的终端是哪个,这里的终端类型有两种:tty和pts。
tty1~6
是本地字符界面终端,tty7
是本地图形终端pts/0~255
,比如第一个远程连接的终端是pts/0
,第二个远程连接的终端是pts/1
,依次类推。STAT字段表示进程的状态,常见的状态有以下几种:
进程由于非正常停止或程序编写错误,导致子进程比父进程先结束,而父进程又没有正常回收子进程,使子进程一直在内存中,导致资源浪费。这种情况就是僵尸进程。
PS:正常情况下应该是父进程先结束,然后子进程由init接管,init 结束子进程并回收对应的资源。