如何得到一个新增加的系统进程名

如何得到一个新增加的系统进程名

我现在想写一个脚本,目的是实现对系统进程的时时监测,如果有新的进程产生,获得它的进程名。我的思路是用一个循环放在后台来监视系统进程数,如果进程数增加,表示有新的进程来了,然后获得它的进程名,以便完成我后面的程序输入。由于是实时的,所以基本不存在一个进程消失同时又有新的进程在同一时间产生的情况。我和其他人讨论过,有人建议把ps -aux出来的东西重定向到文本中,再进行比较。这样对系统的开销可能就比较大了,但是直接在内存中能够发现新来的进程的话,系统开销就很小了。对于新来的进程,我现在一直无法获得进程名,不知道有哪位朋友能够指点一下,谢谢!      
怎么没有人回答啊?是这个问题你们觉得太简单了还是难了?我和同事讨论过,这个问题应该还属于能值得一回答的吧?怎么就没人回复啊!      
你说的进程名是什么?是不是:
复制内容到剪贴板
代码:
PID T STAT TIME COMMAND
7904 co        R   0:00   ps -a
里的COMMAND这个字段?      
对,是comand字段,但是如何检测到有新进程生成并获取他的名称我就不知道该怎么实现了      
哈哈,给我关心的问题正好相反,想监视结束进程,以及是谁结束这个进程。
怎样时实的监视?
请指点!!      
/proc下所有以数字命名的目录都是存放进程资料的。目录名就是进程号,进程名可在其下的status文件里获取。      
这个主意不错的样子      
/proc下面的id很多,如果有新的进程产生,好象会产生一系列的子进程,变化比较大,不利于观察产生的核心进程。如果遍历/proc下面的id,会不会开销很大,我这个程序可是时时监控的。      
如果对效率要求较高的话,还是看看 ps 的 code 吧      
要得到command字段太容易了,你后面的问题我也处里不了。
复制内容到剪贴板
代码:
ps > ps.txt
awk '{print $8}' ps.txt     #$8就是字段了,你的也许是$7.6.5
得到的就是command字段。

要比较两个时点的ps要用到数组的概念,我没办法处理。