第七讲:监控进程管理
程式是个可执行文档(Process)是正在运行程式一个实例。
System V支持许多进程同时运行,各种系统通过调用可用进程
去创建新进程,和其他进程通讯,连同终止其他进程。 进程族系
新进程创建时,内核会分配一个进程标识号(PID)给他,并对 进程表中添加说明讯息。
由一个进程创建另一新进程,老进程为父进程,新进程为子进程。
用户Shell执行的大多数命令又是他的子进程,子进程则运行命令。
而父进程允许有多个子进程来实现任务等,待子进程完成。一个
父进程能够有多个子进程,但是,一个子进程只有一个父进程。
前台及後台进程
在Shell提示处打入命令後,创建一子进程运行命令,Shell等待
命令退出,然回到对用户提出提示符,这道命令和Shell同步运行, 即在前台运行。
在Shell提示处打入的命令,若随一个&,Shell创建的子进程运行此命令,但不等待
命令退出,而直接返回到对用户提出提示。这道命令和Shell同步运行,即在台运行。
$sleep 10 &
精灵进程
精灵进程是个进程,他和终端和用户都无联系,也有人喜欢称
他为管家婆。精灵完成一些周期性的事,平时他睡眠。用ps (C)
命令可看到精灵,他在tty区域中带有问号(?)。
-Sched:PID
0,他完成进程的程式在存储局和盘交换局之间交 换工作。
-init:PID
1,系统自动建的第一用户进程,他负责初始化引导和注册过程,也就是任何
非系统进程的祖先。他会在终端口上, 启动getty (M)进程。
-vhand:PID
2,页面精灵,他频繁地把储页面内容送往交换区。
-bdfush:PID
3,定期刷新高速缓到盘(默认情况,每13秒刷 新一次)
-logger:归档系统出错讯息。
-cron:在调度时运行作业。
-Ipsched:脱机打印精灵。
孩儿进程
孤儿进程在父进程终止仍旧活动,由init(M)认他为乾儿子。 僵尸进程则是进程已终止,
但进程还未撤消,因为父进程并未「等待」他,进程表仍保留著这□体,进程表的□体
是僵尸进程所 消耗的资源。
随著新进程的创建,出现大量□体,但总数是有限制的,因此影 响新进程的产生。
而孩儿进程和僵尸进程不同,并不会影响系统 效率。
通常,在父进程死去时,才会移去僵尸进程。若他们还未移去, 应由init (M)继承并移去他。
监控进程
监控进程监注册户的数量,用以记系统的性能;亦会监控用户进程,包括挂起进程;
连同装载均值等系统性能问题。 要显示进程信息,能够利ps(C)命令报告,进程状态。
在默认 情况下,仅会报告和当前终端有联系的有关讯息。
若用户没有root权限,ps仅限以说明运行进程,报告用户的进程讯息。若用户有root权
限,则会报告在任何终端上任何用户的进程讯息。
$ ps-u joana
--u 〈username〉选项显示指定用户的讯息。
--t 〈ttynamt〉选项显示指定终端有关的进程讯息。
而ps -elf命令则提供了需有F、S、C、PRI、NI、TIME字段的 使用讯息。
-F是标记,指示进程位置,20表示在内存,0表示交换在盘上, 31是系统进程。
-S是状态讯息,指示进程状态,睡眠还是正在运行。
-C是进程占有CPU的百分率
-TIME是花费CPU的总时间。
-PRI是进程当前优先数
-NI是进程的nice
(ADM)菜单
如何创建进程
当进程分岔一个子进程,自己就会进入睡眠状态。开始时,子进程运行父进程
的同一程式,由内核分配一个新的PID。当子进程再去执行新的程式,保持新分
配的PDI,新程式就会替代子进程 的原先程式。
当子进程完成後,内核会把他从系统中移去,再唤醒父进程,子进程就会退出。
监控系统装载
uptime(C)命令显示装载均值(一分钟、五分钟和十五分钟),
即在预定时间上,排队运行进程的平均数:
$uptime W(C)命令产生如uptime(C)相同的装载均值讯息,并显示谁在
系统上做甚麽,若用户拥有root权限,W报告任何用户的有关讯 息。 若没有
,仅显示和用户进程有关竹的讯息。
PCPU(Process CPU,进程CPU时间 )显示某道特定命令已运行多久了。
对控制不了的进程,这种检查是很有用的。
JCPU( JointCPU,连合CPI时间),显示一个终端所涉的任何进程的总时间。
sar(ADM)命令是个系统活动报告程式,显示系统资源累积 利用率。
为指示系统瓶颈口(Bottleneck),sar是很好的实 用程式,命令语法如下:
$sar〔-option〕 〔 sample-interval-samples〕
例如:$sar-u120
-u选项显示CPU利用情况。假如%idle一致地低,使用效能是上升,
但是,运行的进程偷不到未用的CPU周期。
又例如使用-q选项显示进程吞吐量。假若%swpocc大於20,就发生
交换(Swapping),能够使用大内存能减少交换 /请负活动。
第八讲:管理进程
用低优先级运行进程 nice(C)命令用於以较低的调度优先级执行命令,每个进程都有
一个nice 值,用於计算他的优先级。nice 值在 0 到 39 范围内, 高值获得低优先级,
不给实参的默认情况是 nice 值20。终极用户可指定负值,以提高优先级。
在注销进程後进程继续执行
後台启动的进程,默认情况下,当注销後就不再存在,但是,可 以使用
nohup(c)命令,让进程不受挂起和注销影响,得以继续 运行,例如:
$ nohup sort bigfile>sortfile & 4567
$ exit
当用户注销时,用户未用输出改向,输出将送到当前目录下的 nohup.out
文档中,假如当前目录不可写,则输出改向到 $HOME/nohup.out。
重新启动安全级精灵进程
根据 C2安全级需要,某些精灵进程用 LUID (Login User Identifier)标记运行,如此只能用
sd(ADM)实用程式重新启 动他们。 假如 LUID 限制有效的话(高安全级),只能用 sd(ADM),
例 如
cron(C)这样的精灵,在高安全级下要 sd 重新启动他。 进程终止实用程式
需要终止实用程式时,能够通过发信息给进程,使他自杀,通常会用在终止
一些已挂起的或是运行的进程。
语法如下: $ kill [-signal]
例如 $ kill 4411 4411:terminated 这样,只能终止运行优先级大於 25 的进程,小於 25
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




