码迷,mamicode.com
首页 > 系统相关 > 详细

浅谈Linux Process status

时间:2015-08-07 10:50:14      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

这两天在处理一个相应问题,一个系统希望实行命令互斥,举个例子就是如果我打开了两个命令窗口,分别在这两个窗口中运行两种操作,这些操作是互斥的,即命令2要等待命令1执行完成后再执行。

 

这看似可以用简单的锁机制来实现,但实际处理时还要判断1号窗口的进程状态,用户2不会无线等待用户1的命令执行,会去系统中查看用户1的命令执行情况,如果是正在执行则继续等待,如果这个进程被暂停或者有其他情况,则用户2可以从反馈中知道具体信息

 

具体实现上用到了一些ps的知识

 

ps aux

a = show processes for all users
u = display the process‘s user/owner
x = also show processes not attached to a terminal

ps -p xxx  检索pid

ps -p xxx -o stat 检索pid, report形式只有pid和stat, -o可以多参数,例如ps -p xxx -o stat -o user

ps aux |grep xxx | grep xxx 针对某些关键词检索pid

pid是可重用分配的,如果一个pid被kill,在下一某个时刻会它可能会被分配给其他的进程

 

STAT狀態位常見的狀態字符

D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换  (从内核2.6开始无效);
X 死掉的进程   (基本很少見);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;

 

浅谈Linux Process status

标签:

原文地址:http://www.cnblogs.com/Raymond-Yang/p/4710042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!