解决掉你不要的Unix操作系统进程

系统 其他OS
多用户的Unix操作系统计算机系统在运行过程中,有时会感觉到运算速度突然慢下来,是因为计算机中一定在运行一个非常耗费CPU的进程。下面,我们就来学习找到它的方法。

在我们使用Unix操作系统的时候,会有很多使用过的进程仍然显示在后台,或者一些我们想要关掉的进程,那么,我们如何才能找到那些占用CPU很大的进程呢?今天,我们在这就来告诉大家个方法。

多用户的Unix操作系统计算机系统在运行过程中,有时会感觉到运算速度突然慢下来,有时甚至连从键盘输入字符也得过好久才会有反应。有经验的人一定会知道,这时计算机中一定在运行一个非常耗费CPU的进程。

这样的进程有时是某个人在执行一个很占CPU的程序,有时则可能是系统中出了意外情况,系统本身在进行处理。无论是哪种情况,系统管理员都应及时找出这样的进程,并做出相应的处理。 

Unix操作系统虽然提供了“acct”等一系列记账程序,但这些程序只能在进程结束后才能显示运行时间和占用CPU时间等信息,不能实时计算单位时间内哪一个进程占用CPU时间最多。

为此本人用shell语言编写了一段程序,利用Unix操作系统提供的一些实用程序,实现了上述功能。

此段程序中包含ps、cut、diff等Unix操作系统实用程序,下面先简单介绍一下这些实用程序的功能。

ps:用来显示当前系统中进程的有关信息。用-e参数则显示系统中所有进程的信息。使用-f参数则显示各进程完整的信息;

cut:用于以列为单位对文件进行剪裁。参数“-c -15,33-”表示把输入文件每行前15个字符及第33个字符以后直到行尾的所有字符放入输出文件;

echo:用于向屏幕上显示提示信息;

sleep:可以让shell程序等待若干秒,然后再执行后面的语句;

diff:用于对两个文件进行比较,不同之处则显示出来;

sort:可对文件中的各行进行排序,排序结果可显示出来;

grep:可用来找出文件中满足一定条件的行。参数“^”表示找出***列为空格的各行;

|:为管道的符号,可实现把前面命令的输出作为后面命令输入的作用,这样就可省略生成中间文件的步骤,提高执行效率;

>:表示对输出进行重定向,把本来应显示在屏幕上的东西输出到文件中。

Unix操作系统程序内容如下:

 

  1. ps -ef|cut -c -15,33->tt1   
  2. echo Please wait a while...   
  3. sleep 20   
  4. ps -ef|cut -c -15,33->tt2   
  5. echo Attention !   
  6. echo   
  7. diff tt1 tt2|cut -c 2->tt3   
  8. sort tt3|grep ^ |cut -c -83|grep -v 0:00   
  9. echo   
  10. echo That is ok!   
  11. rm tt1 tt2 tt3  

程序首先取得Unix操作系统中所有进程的信息并把其中有用的字段放入临时文件tt1中。接着让程序等待20秒(时间可依具体情况进行调整)。

然后再一次取得所有进程的信息,并把所有的字段放入临时文件tt2中。

对两个临时文件进行比较,找出20秒前后信息不同的那些进程(其中就有消耗CPU时间已经发生了变化的进程)。

去掉进行比较时产生的“>”和“<”,把结果放入临时文件tt3中。

对tt3中的内容进行排序,把耗费CPU时间发生变化的同一进程的前后信息排在一起。grep“^”则是用来去掉执行此shell程序时产生的一些中间命令进程的信息。

再用cut删去每行中过长的进程信息,使输出更加清晰。而grep -v 0:00则用来去掉20秒前后只出现一次的进程。程序执行至此,在20秒前后耗费CPU时间不同的进程就显示在屏幕上了。***为了不在Unix操作系统中留下无用的垃圾文件,还要把三个临时文件全都删去。
 

【编辑推荐】

  1. 3种Unix操作系统服务作用讲解
  2. 安全Unix操作系统升级
  3. 看守好你的Unix操作系统远程网络
  4. Unix操作系统基础介绍讲解
  5. 教学Unix操作系统内核级后门
责任编辑:小霞
相关推荐

2010-04-09 10:08:22

Unix操作系统

2010-04-14 15:58:25

Unix操作系统

2010-04-14 13:59:45

Unix操作系统

2010-04-16 18:19:32

Unix操作系统

2010-04-19 16:47:40

Unix操作系统

2010-04-14 13:20:29

Unix操作系统

2010-04-19 09:08:20

Unix操作系统

2010-04-09 17:25:13

Unix操作系统

2010-04-30 17:27:59

Unix操作系统

2010-04-14 16:45:15

Unix操作系统

2010-04-09 16:45:42

Unix操作系统

2010-04-15 17:21:40

Unix操作系统

2010-04-15 15:21:43

Unix操作系统

2010-04-16 17:38:25

2010-04-14 14:55:29

Unix操作系统

2010-04-09 14:20:59

Unix操作系统

2010-04-07 13:11:01

Unix操作系统

2010-05-05 10:25:24

Unix操作系统

2010-04-15 14:40:26

Unix操作系统

2010-04-13 12:27:44

Unix操作系统
点赞
收藏

51CTO技术栈公众号