您好,欢迎访问三七文档
系统进程管理系统进程管理捕获进程状态:要查看系统中执行的进程时,ps(processstatus)是经常使用的命令查看较详细的说明查看其他用户的进程查看后台执行的进程将进程清单排序搭配其他命令查询进程删除进程控制进程优先级理解进程进程在操作系统中执行特定的任务,它是一个随着程序执行过程不断变化的实体。进程与程序是有区别的:进程不等同于程序,它由程序产生;程序是一个静态的指令集合,不占用系统的运行资源,而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的、正在执行着的程序。进程的概念进程(Process)是一个程序在其自身的虚拟地址空间中的一次执行活动。之所以要创建进程,就是为了使多个程序可以并发的执行,从而提高系统的资源利用率和吞吐量。进程的类型交互进程:由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程:不与特定的终端相关联,提交到等待队列种顺序执行的进程。守护进程:在Linux在启动时初始化,需要时运行于后台的进程。进程的启动方式手工启动前台、后台调度启动Cron、at启动进程程序或者命令的执行实际上是通过进程实现的。通常情况下,程序或者命令是保存在硬盘上的,当在命令行中输入一个可执行程序的文件名或者命令并按下Enter键后,Fedora内核就将该程序或者命令的相关代码加载到内存中开始执行;Fedora会为该程序或者命令创建一个或者多个相关的进程,通过进程完成特定的任务。前台后台调度进程在Linux系统中,允许多个进程并发执行。但是,通常情况下,系统中的资源总是有限的,如果系统中并发执行的进程数量过多,就会造成系统的整体性能下降,尤其是当系统中存在黑客进程或者病毒进程时,甚至可能会造成系统瘫痪。因而,有必要根据一定的策略对系统中的进程进行调度,例如,将可疑的进程终止,将不紧急的进程挂起或者降低其优先级等。系统管理员或者普通用户都可以对进程进行调度,但是执行这种操作时要非常小心,因为有些进程是与系统运行相关联的,不能对它们有错误的调度。可以使用以下几种方法调度进程:在系统监视器的进程选项卡中调度进程在top命令的执行中使用交互命令调度在命令行中直接执行各种命令调度监视进程当对进程进行调度时,需要了解系统中当前进程的具体状况,也就是说,要了解当前有哪些进程正在运行,哪些进程已经结束,有没有僵死的进程,哪些进程占用了过多的系统资源等。查看系统中的进程命令格式:ps[选项]可以确定有哪些进程正在执行和执行的状态,进程是否结束、进程有没有僵死,哪些进程占用了过多的系统资源等常用选项a:显示所有进程e:在命令后显示环境变量u:显示用户名和启动时间等信息x:显示没有控制终端的进程f:显示进程树w:宽行输出-e:显示所有进程-f:显示全部操作举例显示出当前用户在shell下所运行的进程#ps列出系统中正在运行的所有进程的详细信息#ps-aux显示系统进程树#ps-auxf改变进程优先级(1)命令格式:nice[option][command[arg...]]说明:以更改过的优先序来执行程序,如果未指定程序,则会印出目前的排程优先序,内定的adjustment为10,范围为-20(最高优先序)到19(最低优先序)参数:-nadjustment,-adjustment,--adjustment=adjustment皆为将该原有优先序的增加adjustment--help显示求助讯息--version显示版本资讯范例:将ls的优先序加1并执行:nice-n1ls将ls的优先序加10并执行:nicels将ls的优先序加10并执行注意:优先序(priority)为操作系统用来决定CPU分配的参数,Linux使用『回合制(round-robin)』的演算法来做CPU排程,优先序越高,所可能获得的CPU时间就越多。改变进程优先级(2)命令格式:renice[+/-n][[-p]pid...][[-g]pgrp...][[-u]user...]说明:重新指定一个或多个行程(Process)的优先序(一个或多个将根据所下的参数而定)参数:-ppid重新指定行程的id为pid的行程的优先序-gpgrp重新指定行程群组(processgroup)的id为pgrp的行程(一个或多个)的优先序-uuser重新指定行程拥有者为user的行程的优先序范例:将行程id为987及32的行程与行程拥有者为daemon及root的优先序号码加1:renice+1987-udaemonroot-p32注意:每一个行程(Process)都有一个唯一的(unique)id。杀死系统中的进程(1)为什么要杀死进程该进程占用了过多的CPU时间该进程锁住了一个终端,使其他前台进程无法运行运行时间过长,但没有预期效果产生了过多到屏幕或磁盘文件的输出无法正常退出常用进程信号HUP/SIGHUP/1:从终端上发出的结束信号,发送给守护进程可使其重新读取配置文件INT/SIGINT/2:从键盘上发出的中断信号(ctrl+c)QUT/SIGQUT/3:从键盘上发出的退出信号(ctrl+\)KILL/SIGKILL/9:结束接受信号的进程(强行杀死进程)TERM/SIGTERM/15:kill命令默认的终止信号STOP/SIGSTOP/19:从键盘来执行的信号(ctrl+d)在系统中通过向进程发送进程信号实现对进程的控制。向进程发送进程信号可以使用kill和killall等命令。杀死系统中的进程(2)kill命令功能:向指定PID的进程发送进程信号格式:kill[-signal]PID举例:杀死PID为1621的进程$kill1621强行杀死PID为1621的进程$kill-91621killall命令功能:向指定进程名的进程发送进程信号格式:killall[-signal]进程名举例:杀死进程名为cat的所有进程$killallcat强行杀死进程名为named的进程#killall-9named使xinetd守护进程重新读取其配置文件#killall-1xinetdnohup命令功能:使进程在退出登录后仍旧继续执行。格式:$nohup程序名结果:如果程序program有结果输出,输出结果将会被保存到当前目录下的一个文件名为nohup.out的文件中,如果用户在当前目录没有写的权限,则结果将会被保存到用户主目录下的nohup.out文件中。举例:#nohupmcal&nohup:appendingoutputto`nohup.out'监视进程命令格式:top[-][ddelay][q][c][S][s][i][n][b]说明:实时显示process的动态参数:d:改变显示的更新速度,或是在交谈式指令列(interactivecommand)按sq:没有任何延迟的显示速度,如果使用者是有superuser的权限,则top将会以最高的优先序执行c:切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S:累积模式,会将己完成或消失的子行程(deadchildprocess)的CPUtime累积起来s:安全模式,将交谈式指令取消,避免潜在的危机i:不显示任何闲置(idle)或无用(zombie)的行程n:更新的次数,完成后将会退出topb:批次档模式,搭配“n”参数一起使用,可以用来将top的结果输出到档案内范例:显示更新十次后退出;top-n10使用者将不能利用交谈式指令来对行程下命令:top-s将更新显示二次的结果输入到名称为top.log的档案里:top-n2-btop.log作业控制作业控制是指控制当前正在运行的进程的行为,也称为进程控制。作业控制是Shell的一个特性,使用户能在多个独立进程间进行切换。实施作业控制的常用命令和快捷键cmd&:命令后的&符号表示将该命令放到后台运行,以免霸占终端Ctrl+d:终止一个正在前台运行的进程(含有正常含义)Ctrl+c:终止一个正在前台运行的进程(含有强行含义)Ctrl+z:挂起一个正在前台运行的进程jobs:显示后台作业和被挂起的进程bg:在后台恢复运行一个被挂起的进程fg:在前台恢复运行一个被挂起的进程守护进程的概念(1)守护进程(Daemon)是在计算机启动时就被运行的,并在系统中持续运行的进程,它等待着随时为客户提供自身负责的服务。守护进程的工作就是打开一个端口,并且等待(Listen)进入的连接。如果客户提请了一个连接,守护进程就创建(fork)子进程来响应此连接,而父进程继续监听更多的服务请求。正因为如此,每个守护进程都可以处理多个客户服务请求。网络守护进程xinetd(extendedinternetdaemon)xinetd是新一代的网络守护进程服务程序为了节省资源,引入了xinetd用于监控网络服务,如telnet、talk等。xinetd就是一个管理很多网络服务的守护进程,它同时监听着它所管理的服务的所有端口,当有客户提出服务请求时,它会判断这是对哪一个服务的请求,然后再开启此服务的守护进程,由该守护进程处理客户的请求。查看系统当前运行的守护进程:pstree守护进程的概念(2)守护进程的运行方式独立运行的守护进程独立运行的守护进程由init脚本负责管理独立运行的守护进程的脚本存放在/etc/rc.d/init.d/目录下所有的系统服务都是独立运行的。如:crond、syslogd、xinetd等由xinetd运行的守护进程由xinetd管理的守护进程的配置文件存放在/etc/xinetd.d/目录下默认的xinetd的主配置文件是/etc/xinetd.confxinetd本身是独立运行的守护进程守护进程的分类系统守护进程:如atd、crond、lpd、syslogd、login等。网络守护进程:如sshd、httpd、sendmail、xinetd等。xinetd的配置文件RedHat中xinetd的配置文件主配置文件:/etc/xinetd.conf每一个由xinetd启动的服务在目录/etc/xinetd.d/下都有一个以服务名称命名的配置文件在主配置文件/etc/xinetd.conf中将/etc/xinetd.d目录下的所有文件的内容使用includedir/etc/xinetd.d语句包含进来。xinetd的配置选项disable:xinetd是否监控此服务server:指定由xinetd监控的服务器路径server_args:指定由xinetd监控的服务器的运行参数wait:是否为该服务提供多线程功能user:指定执行本守护进程的用户only_from:只允许指定的主机访问no_access:指定不能访问的主机per_source:每个客户机的最大连接数instances:服务器总共支持的最高连接数access_times:指定允许访问本守护进程的时间xinetd的配置文件举例serviceftp{socket_type=streamwait=nouser=rootserver=/usr/sbin/in.ftpdserver_args=-linstances=4per_source=1access_times=7:00-12:3013:30-21:00only_from=192.168.1.0/24}使用GUI工具管理守护进程system-config-services“系统”→“管理”→“服务”可配置项目临时运行/停止一个服务使一个服务在系统启动时运行/停止修改默认系统运行级别使用TUI工具管理守护进程ntsysv是一个用于管理自动运行的守护进程的文本用户界面工具。图41.使用ntsysv配置服务使用CLI工具(chkconfig)管理守护进程功能
本文标题:系统进程管理
链接地址:https://www.777doc.com/doc-3390726 .html