系统维护的时候难免会遇到进程的状态的查询和管理,到底什么是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:该程序的内容啦!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐