Linux系统进程管理基本原理以及管理工具

本文发布时间: 2019-Mar-22
一、进程简介程序是保存在外部存储介质(如硬盘)中的可执行代码和数据的静态集合;为了某种任务而设计的软件。而进程是在CPU及内存中处于动态执行状态的计算机程序。在Linux系统中,一个程序启动后可以创建一个或多个进程,例如提供Web服务的httpd程序,当有大量用户同时访问web页面时,httpd程序可能会创建多个进程来提供服务。1.1 进程分类进程分交互进程、批处理进程、和守护进程。守护进程总是活跃的,一般是在后台运行,守护进程一般是由系统在开始时通过脚本自动激活启动或root启动。如/etc/init.d/httpd是web服务器的守护程序,使用chkconfig命令设置httpd程序的运行级别,当系统启动时,会跟着启动。1.2 进程的属性PID:进程的ID,唯一的数值,用来区分进程PPID:代表父进程以及父进程的IDUID:启动进程的用户IDGID:进程所属的组nice:进程执行的优先级tty:进程所连接的终端stat:进程的状态,一般状态分为运行R、休眠S、僵尸Z还有一点,资源的占用,如内存、cpu1.3 父进程和子进程他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行。二、进程的管理对于进程的管理是通过进程管理工具实现的,Linux系统中比较常用的进程管理命令有以下几种:2.1 查看进程ps 查看静态的进程统计信息(processes statistic)top 查看进程动态信息htop 查看进程动态信息,top的升级版pgrep 查询进程信息pstree 查看进程树2.2 控制进程启动进程:分为手工启动和调度启动。手工启动分别前台启动,和后台启动。前台启动就如我们平时的services network start相同,后台启动,是把services network start这条命令放入后台运行,不占用前台的console终端使用。将“&”置于命令的最后面,进程启动后会直接放于后台运行,如service network start &。可以直接把前台启动的进程,手工再放入后台,按Ctrl+Z组合键。后台进程,调回前台:使用job命令查看后台运行的进程,结合“-l”选项显示进程的PID,后通过fg或fg PID 命令讲后台进程调入前台执行。调度启动,即计划任务,如at、crontab2.3 终止进程执行使用 Ctrl+c 终止正在执行的命令使用 kill 终止进程使用 killall 终止进程使用 pkill 终止进程xkill 桌面用的杀死图形界面的程序2.4 进程的优先级 nice renice在Linux中,进程之间是竟争资源(比如CPU的占用)关系。这个竟争优劣是通过一个数值来实现的,也就是谦让度。进程的“谦让度”是以数字形式给内核的暗示,通过它来表明一个进程在同其他进程竞争CPU时应该如何对侍这个进程,谦让度值越高,优先级越低,谦让度值越低或负值表示优先级越高。“谦让度”的值范围是-20至+19。如今很少通过手工设置进程的优先级。进程的“谦让度”值可以在创建进程时用nice命令来设置,并可以在执行时使用renice命令进行调整。Nice带一个命令行作为参数,而renice带PID或用户名作为参数可以用ps lax的输出包括父进程ID、谦让度(NI)字段等信息用nice设置一个将要执行程序的的进程的谦让值并查看,如下图:用renice改变cat /dev/zero进程的谦让度renice –4 10820(10835是cat的PID)如果所有就绪进程都具有同一优先级,那么它们将平等地共享处理器。仅当具有不同优先级的两个进程争夺CPU时间时,优先级才起作用,优先级较低的进程获得的时间较少,并且似乎运行起来更慢。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:10pm
栏目列表