一、查看进程命令
1.ps命令
Linux中的ps命令是Process Status的缩写。
ps命令用来列出系统中当前运行的那些进程。
ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。
Linux上进程有5种状态:
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps工具标识进程的5种状态码:
- D 不可中断 uninterruptible sleep (usually IO)
- R 运行 runnable (on run queue)
- S 中断 sleeping
- T 停止 traced or stopped
- Z 僵死 a defunct (”zombie”) process
参数:
- -e:显示所有进程 等同于-A
- f:显示程序间的关系 ps -ef
- -u:指定用户 ps -u root
实例:
ps常与grep组合使用,查找特定进程 ps -ef | grep ssh
找出与cron与syslog有关的PID号码 ps aux | grep '(cron|syslog)'
查找指定进程个数 ps -ef | grep xxx -c 或者 ps -ef | grep -c xxx
2.top命令
top命令提供了运行中系统的动态实时视图。在命令提示行中输入top:
按q退出,按h进入帮助。
3.pstree命令
pstree以树状显示正在运行的进程。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。
二、ps -ef与ps aux的区别
- ps -ef 是System V展示风格
- ps aux是BSD风格
字段含义:
1.UID:用户ID
2.PID:进程ID
3.PPID:父进程ID
4.C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
5.STIME:进程启动的时间
6.TTY:完整的终端名称
7.TIME:CPU时间
8.CMD:完整的启动进程所用的命令和参数
字段含义:
1.USER:用户名称
2.PID:进程号
3.%CPU:进程占用CPU的百分比
4.%MEM:进程占用物理内存的百分比
5.VSZ:进程占用的虚拟内存大小(单位:KB)
6.RSS:进程占用的物理内存大小(单位:KB)
7.TTY:终端名称(缩写),若为?,则代表此进程与终端无关,由系统启动的
8.STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
9.START:进程的启动时间
10.TIME:CPU时间,即进程使用CPU的总时间
11.COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
注意:
1.command列如果过长,aux会截断显示,而-ef不会截断;
2.如果想查看进程的CPU占用率和内存占用率,使用aux;
3.如果想查看进程的父进程ID和完整的command,使用-ef;
三、kill命令
kill 命令用于杀死进程,终止进程。
kill -9 pid 等于 kill -s 9 pid 表示强迫进程立即停止
END 2018-08-16 14:46:18