当前位置:文档之家› Linux操作系统进程管理的分析与应用

Linux操作系统进程管理的分析与应用

Linux操作系统进程管理的分析与应用(1)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北目录1、程序和进程;1.1 进程分类;1.2 进程的属性;1.3 父进程和子进程;2、进程管理;2.1 ps 监视进程工具;2.1.1 ps参数说明;2.1.2 ps 应用举例;2.2 pgrep3、终止进程的工具 kill 、killall、pkill、xkill;3.1 kill3.2 killall3.3 pkill3.4 xkill4、top 监视系统任务的工具;4.1 top 命令用法及参数;4.2 top 应用举例;5、进程的优先级: nice和renice;6、关于本文;7、后记;8、参考文档;9、相关文档;1、程序和进程;程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。

什么是进程呢?进程就是运行中的程序。

一个运行着的程序,可能有多个进程。

比如 所用的WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求httpd服务,apache服务器将会创建有多个httpd进程来对其进行服务。

1.1 进程分类;进程一般分为交互进程、批处理进程和守护进程三类。

值得一提的是守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动。

比如在Fedora或Redhat中,我们可以定义httpd 服务器的启动脚本的运行级别,此文件位于/etc/init.d目录下,文件名是httpd,/etc/init.d/httpd 就是httpd服务器的守护程序,当把它的运行级别设置为3和5时,当系统启动时,它会跟着启动。

[root@localhost ~]# chkconfig --level 35 httpd on由于守护进程是一直运行着的,所以它所处的状态是等待请求处理任务。

比如,我们是不是访问 , 的httpd服务器都在运行,等待着用户来访问,也就是等待着任务处理。

Linux操作系统进程管理的分析与应用(2)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北1.2 进程的属性;进程ID(PID):是唯一的数值,用来区分进程;父进程和父进程的ID(PPID);启动进程的用户ID(UID)和所归属的组(GID);进程状态:状态分为运行R、休眠S、僵尸Z;进程执行的优先级;进程所连接的终端名;进程资源占用:比如占用资源大小(内存、CPU占用量);1.3 父进程和子进程;他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。

但子进程终止,父进程并不一定终止。

比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。

在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行;2、进程管理;对于Linux进程的管理,是通过进程管理工具实现的,比如ps、kill、pgrep等工具;2.1 ps 监视进程工具;ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用top工具;2.1.1 ps 的参数说明;ps 提供了很多的选项参数,常用的有以下几个;l 长格式输出;u 按用户名和启动时间的顺序来显示进程;j 用任务格式来显示进程;f 用树形格式来显示进程;a 显示所有用户的所有进程(包括其它用户);x 显示无控制终端的进程;r 显示运行中的进程;ww 避免详细参数被截断;我们常用的选项是组合是aux 或lax,还有参数f的应用;ps aux 或lax输出的解释;2.1.2 ps 应用举例;实例一:ps aux 最常用[root@localhost ~]# ps -aux |more可以用 | 管道和 more 连接起来分页查看;[root@localhost ~]# ps -aux > ps001.txt[root@localhost ~]# more ps001.txt这里是把所有进程显示出来,并输出到ps001.txt文件,然后再通过more 来分页查看;实例二:和grep 结合,提取指定程序的进程;实例二:父进和子进程的关系友好判断的例子这里用到了f参数;父与子关系一目了然;Linux操作系统进程管理的分析与应用(3)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北2.2 pgreppgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。

在服务器的配置和管理中,这个工具常被应用,简单明了;用法:#ps 参数选项程序名常用参数-l 列出程序名和进程ID;-o 进程起始的ID;-n 进程终止的ID;举例:3、终止进程的工具 kill 、killall、pkill、xkill;终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。

比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。

为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。

比如mysql服务器最好是按其正常的程序关闭,而不是用pkill mysqld 或killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用kill 来杀掉。

Linux操作系统进程管理的分析与应用(4)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北3.1 killkill的应用是和ps 或pgrep 命令结合在一起使用的;kill 的用法:kill [信号代码]进程ID注:信号代码可以省略;我们常用的信号代码是 -9 ,表示强制终止;举例:我们查看httpd 服务器的进程;您也可以用pgrep -l httpd 来查看;我们看上面例子中的第二列,就是进程PID的列,其中4830是httpd服务器的父进程,从4833-4840的进程都是它4830的子进程;如果我们杀掉父进程4830的话,其下的子进程也会跟着死掉;[root@localhost ~]# kill 4840 注:杀掉4840这个进程;[root@localhost ~]# ps -auxf |grep httpd 注:查看一下会有什么结果?是不是httpd服务器仍在运行?[root@localhost ~]# kill 4830 注:杀掉httpd的父进程;[root@localhost ~]# ps -aux |grep httpd 注:查看httpd的其它子进程是否存在,httpd 服务器是否仍在运行?对于僵尸进程,可以用kill -9 来强制终止退出;比如一个程序已经彻底死掉,如果kill 不加信号强度是没有办法退出,最好的办法就是加信号强度 -9 ,后面要接杀父进程;比如;Linux操作系统进程管理的分析与应用(5)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北3.2 killallkillall 通过程序的名字,直接杀死所有进程,咱们简单说一下就行了。

用法:killall 正在运行的程序名killall 也和ps或pgrep 结合使用,比较方便;通过ps或pgrep 来查看哪些程序在运行;举例:3.3 pkillpkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。

应用方法:#pkill 正在运行的程序名举例:3.4 xkillxkill 是在桌面用的杀死图形界面的程序。

比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox 。

当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃一点就OK了。

如果您想终止xkill ,就按右键取消;xkill 调用方法:[root@localhost ~]# xkillLinux操作系统进程管理的分析与应用(6)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北4、top 监视系统任务的工具;和ps 相比,top是动态监视系统任务的工具,top 输出的结果是连续的;4.1 top 命令用法及参数;top 调用方法:top 选择参数参数:-b 以批量模式运行,但不能接受命令行输入;-c 显示命令行,而不仅仅是命令名;-d N 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;-i 禁止显示空闲进程或僵尸进程;-n NUM 显示更新次数,然后退出。

比如 -n 5,表示top更新5次数据就退出;-p PID 仅监视指定进程的ID;PID是一个数值;-q 不经任何延时就刷新;-s 安全模式运行,禁用一些效互指令;-S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程;交互式命令键位:space 立即更新;c 切换到命令名显示,或显示整个命令(包括参数);f,F 增加显示字段,或删除显示字段;h,? 显示有关安全模式及累积模式的帮助信息;k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15)i 禁止空闲进程和僵尸进程;l 切换到显法负载平均值和正常运行的时间等信息;m 切换到内存信息,并以内存占用大小排序;n 提示显示的进程数,比如输入3,就在整屏上显示3个进程;o,O 改变显示字段的顺序;r 把renice 应用到一个进程,提示输入PID和renice的值;s 改变两次刷新时间间隔,以秒为单位;t 切换到显示进程和CPU状态的信息;A 按进程生命大小进行排序,最新进程显示在最前;M 按内存占用大小排序,由大到小;N 以进程ID大小排序,由大到小;P 按CPU占用情况排序,由大到小S 切换到累积时间模式;T 按时间/累积时间对任务排序;W 把当前的配置写到~/.toprc中;Linux操作系统进程管理的分析与应用(7)发布时间:2006.05.19 07:12来源:LinuxSir作者:北南南北4.2 top 应用举例;[root@localhost ~]# top然后根据前面所说交互命令按个尝试一下就明白了,比如按M,就按内存占用大小排序;这个例子举不举都没有必要了。

呵。

当然您可以把top的输出传到一个文件中;[root@localhost ~]# top > mytop.txt然后我们就可以查看mytop文件,以慢慢的分析系统进程状态;5、进程的优先级:nice和renice;在Linux 操作系统中,进程之间是竟争资源(比如CPU和内存的占用)关系。

相关主题