Linux进程主要分为:静态进程查看命令(ps)、动态进程查看命令(top)和查看进程树命令(pstree),下面分别介绍这几个进程
一、静态进程查看
ps命令格式: ps -aux 查看系统所有进程
ps -lA 查看所有系统的数据
ps axjf 连通部分进程树状态
-A:与-e意思一样,表列出所有进程
-a :不与terminal有关的进程
-u:有效用户相关的进程
x:通常与a这个参数一起用,可以列出完整信息
输出格式: l:较仔细列出该pid信息
j:工作格式
-f:做一个更为完整的输出
ps -l:仅查看自己的bash相关进程
@Ubuntu:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 20257 20248 0 80 0 - 6067 wait pts/7 00:00:00 bash
0 R 1000 21392 20257 0 80 0 - 2466 - pts/7 00:00:00 ps
F:进程标志
4:表示权限为root
1:表示只能复制,不能执行
S:表示进程的状态(STAT)
R:running表示正在运行状态
S:sleep表示沉睡状态,但是可以唤醒
D:表示沉睡状态,不能唤醒,通常这个进程可能在等待I/O的情况
T:stop表示停在状态,例如暂停的后台工作或出错进程
Z:僵尸进程,进程已经终止但不能提出内存外
UID/PID/PPID:表示用户的UID/进程的PID号码/此进程的父进程PID号码
C:表示CPU的使用率,单位是百分比
PRI/NI:表示此进程被CPU执行的优先级,数字越小,优先级越高
ADDR:支持该进程在内存的那个部分,若该进程正在运行这表示为“-”
SZ:表示该进程占用了多少内存
WCHAN:表示该进程是否运行,若在运行这表示为“-”
TTY:表示登陆终端,若是远程登陆表示为pts/h
TIME:表示该进程使用CPU的时间
CMD:command,表示那个命令启动的该进程
@ubuntu:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 24564 2444 ? Ss 08:19 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 08:19 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:19 0:04 [ksoftirqd/0]
USER:表示该进程所属用户
PID:该进程的PID号
%CPU:表示该进程的CPU占用率
%MEM:表示该进程的物理内存占用率
VSZ:表示该进程占用了多少虚拟内存量
RSS:表示该进程占用了多少固定内存量
TTY:表示登陆端口
STAT:和上面介绍的进程状态一样(R/S/D/T/Z进程)
START:该进程触发启动的时间
TIME:表示该进程占用CPU的时间
COMMAND:表示触动该进程的命令
僵尸进程
通常,造成僵尸进程的原因是该进程应该已经执行完毕,或是因故应该要终止了,但是该进程的父进程却无法完整将该进程结束掉,而造成那个进程一直在内存当中。如果你发现某个进程的CMD后面接上<defunct>时,就代表该进程是僵尸进程,例如:
1 2598 2598 2598 ? -1 Ss 0 0:00 /usr/sbin/hcid<defunct>
当系统不稳定的时候就容易造成所谓的僵尸进程,可能是因为程序写的不好,或者用户操作不当所造成的。如果系统出现很多僵尸进程,记得要找出父进程,然后好好跟踪,好好优化主机环境。如果实在不行就只有reboot了。