系统维护的时候难免会遇到进程的状态的查询和管理,到底什么是R,有的是S,有的还是S+呢?一直有些混沌的问题,今天细细的来总结一下:
PS
是用来报告系统中程序执行状况的命令这个是无可厚非的,linux进程的状态:
D 不可中断睡眠 (通常是在IO操作) 收到信号不唤醒和不可运行, 进程必须等待直到有中断发生
R 正在运行或可运行(在运行队列排队中)
S 可中断睡眠 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)
T 已停止的 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行
W 正在换页(2.6.内核之前有效)
X 死进程 (未开启)
Z 僵尸进程 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放BSD风格的
< 高优先级(not nice to other users)
N 低优先级(nice to other users)
L 页面锁定在内存(实时和定制的IO)
s 一个信息头
l 多线程(使用 CLONE_THREAD,像NPTL的pthreads的那样)
+ 在前台进程组
举个例子:
[test@pan ~]$ ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 1672 516 ? S Apr21 0:00 init [5]
root 2 0.0 0.0 0 0 ? S Apr21 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN Apr21 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S Apr21 0:00 [migration/1]
root 5 0.0 0.0 0 0 ? SN Apr21 0:00 [ksoftirqd/1]
root 6 0.0 0.0 0 0 ? S Apr21 0:00 [migration/2]
其中这个参数来列出所有的信息以提供自己检查程序的问题!在上面的程序列出当中,说明如下:
USER:说明该程序是属于哪一个人的;
PID:该程序的代号;
%CPU:代表该程序使用了多少 CPU 资源;
%MEM:代表该程序使用了多少的 RAM ;
VSZ, RSS:占去的 ram 的大小( bytes );
TTY:是否为登入者执行的程序?若为 tty1-tty6 则为本机登入者,若为 pts/?? 则为远程登入者执行的程序
STAT:该程序的状态
START:该程序开始的日期;
TIME:该程序运行的时间?
COMMAND:该程序的内容啦!