文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Shell学习19-运行级别脚本

Shell学习19-运行级别脚本

时间:2010-08-23  来源:soqsoq

Shell学习19-运行级别脚本

2010.08

1. 怎么知道系统中是否含有运行级别目录

r c . s c r i p t s一般保存在 (实际上是个链接,这一点我们将在后面讲述 ) / e t c / r c N . d或

/ e t c / r c . d / r c N . d目录下,其中,N是一个数字。通常是7个,因为r c N . d目录的序号是从0到6,不过在系统上可能会有另外几个目录,如r c S . d。这并不重要,这里我们只关心带有数字的目录。

 

2. 确定当前的运行级别

$ who –r

.             run-level  4  Apr  22   13:26    4    0   3

在‘run level’后面的数字就是当前的运行级别。后面的时间是系统最近一次重启动的时

间。

 

3. 快速熟悉inittab

运行级别目录中含有一系列启动服务的脚本。这里的“服务”可以是守护进程、应用程序、服务器、子系统或脚本进程。在系统启动的过程中,将会启动一个名为 i n i t的进程(它是

系统中所有进程的祖先) 。它所要完成的一部分工作就是看看需要启动哪些服务,应当缺省地进入哪一个运行级别。它通过查看一个名为 i n i t t a b的配置文件来获得上述信息,该配置文件位于/ e t c目录下。i n i t进程还按照该文件中的设置加载特定的进程。如果需要编辑这个配置文件,一定要先做一个备份。如果该文件被破坏或出现“降级”错误,系统将无法正常启动,到那时,将不得不进入单用户模式并修正该文件。

i n i t t a b文件所包含的域具有严格的格式。该文件中每个条目的格式为:

i d : r s t a r t : a c t i o n : p r o c e s s

其中,i d域是相应进程的唯一标识。

r s t a r t域所包含的数字表示运行该进程的级别。

a c t i o n域告诉i n i t进程如何对待p r o c e s s所对应的进程。这里可以有很多种动作,但是最常见的是w a i t和r e s p a w n。w a i t意味着当进程启动后等待它结束。 r e s p a w n则意味着如果该进程不存在,则启动相应的进程,如果它存在,那么只要它一掉下来就立即重新启动它。

p r o c e s s域包含了实际要运行的命令。

例如,该文件中有这样一行:

15:5:wait:/etc/rc.d/rc 5

它的意思是,在运行级别 5应该以参数5执行脚本/ e t c / r c . d / r c,即/ e t c / r c . d / r c执行/ e t c / r c . d / r c 5 . d

目录中的所有脚本。

 

4.运行级别

r c N . d目录中的脚本只是一些链接—真正的脚本保存在其他的目录中。它们通常都放置在/ u s r / s b i n / i n i t . d或/ e t c / i n i t . d目录中。在这个目录中含有一些能够启动或停止某一服务的脚本。这些脚本的名字最好能够表示出它所实现的功能,形如 r c . <功能>,其中r c表示运行命令(run command)或运行控制(r u no n t r o l) ,或者就像某些系统管理员所称的那样“真正关键的” ( ‘real crucial’ ) 。

一般来说,r c . s c r i p t s都应当能够接受这样的参数:

rc.name stop:停止该服务。

rc.name start:启动该服务。

各个运行级别的用途:

运行级别       0     启动和停止整个系统

运行级别       1     单用户或管理模式

运行级别       2     多用户模式;部分网络服务被启动。有些系统将其作为正常运行模式,而不是级别 3

运行级别       3     正常操作运行模式,启动所有的网络服务

运行级别       4     用户定义的模式,可以使用该级别来定制所需要运行的服务

运行级别       5     有些U N I X操作系统变体将其作为缺省X - w i n d o w s模式,还有些系统把它作为系统维护模式

运行级别       6     重启动

r c N . d目录中的脚本都是一些链接,这样是为了省去不必要的副本。这些链接的格式为:

S n n n . s c r i p t _ n a m e

K n n n . s c r i p t _ n a m e

其中,

S:代表启动相应的进程

K:代表杀死相应的进程

n n:是0 0至9 9的两位数字,不过在有些系统中是 0 0 0至9 9 9三位数字。在不同目录中的链接应采用同一数字。例如,如果某个服务在 r c 3 . d中启动时名为S 4 5 . m y s c r i p t,那么如果希望它在r c 2 . d中启动,应当使用链接名S 4 5 . m y s c r i p t。

s c r i p t _ n a m e:相应脚本的文件名,根据所在操作系统的不同,它们可能位于下列目录中:

/ u s r / s b i n / i n i t . d

/ e t c / r c . d

/ e t c / i n i t . d

当i n i t进程调用相应的运行级别脚本时,杀进程按照从高到低的 K序号进行,即

K23,myscript K12.named;而启动进程按照从低到高的序号进行。如果使用的是 L I N U X系统,K序号将按照从高到低的顺序执行。

 

5. 安装运行级别脚本

如果想要安装自己的运行级别脚本,必须:

• 编写该脚本,确保它符合调用标准。

• 确信它能够启动或终止相应的服务。

• 将该脚本放置于(取决于操作系统) / e t c / i n i t . d或/ u s r / s b i n / i n i t . d或/ e t c / r c . d中。

• 在相应的r c N . d目录中按照合理的命名方式创建链接。

 

6. 使用inittab来启动应用程序

这里给出一个例子,打算在系统运行在级别 3时运行一个磁盘镜像检查脚本。首先我确定该脚本能够正确运行,然后对i n i t t a b文件做备份。

$ cp /etc/initab /etc/inittab.bak

接下来编辑i n i t t a b文件,在该文件末尾加入这样一个条目:

rc.diskchecker:3:once:/usr/local/etc/rc.diskchecker > /dev/console 2>&1

保存并退出。

上面的一条意思是:

行首的r c . d i s k c h e c k e r是该进程在运行级别3中的唯一标识。该进程只运行一次。所要运行的脚本是/ u s r / l o c a l / e t c / r c . d i s k c h e c k e r,所有的输出都被送到控制台。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载