Chinaunix首页 | 论坛 | 博客
  • 博客访问: 723906
  • 博文数量: 823
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5165
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-21 15:52
文章分类

全部博文(823)

文章存档

2011年(1)

2008年(822)

我的朋友

分类: LINUX

2008-08-21 17:40:06


同所有的Unix一样,Debian启动时要执行init程序.init的配置文件(/etc/inittab)中指定的第一个执行脚本应该是/etc/init.d/rcS.该脚本执行/etc/rcS.d/目录中各脚本的扩展名指定或衍生进程完成诸如检查并挂载文件系,装载内核模块,启动网络服务,设定时钟等系统初始化工作.接着,为了兼容性考虑,它运行/etc/rc.boot/目录下的文件(除了那些文件名中包含`.''的文件),目录中的脚本通常是供系统管理员使用的,用于有兼容性问题的软件包.

完成系统启动进程后,init执行默认运行级别(该运行级别由/etc/inittab中的id给出)指定的所有的启动脚本.同大多数SystemV兼容Unix一样,Linux有7个运行级别:

0(关闭系统),

1(单用户模式),

2到5(各种多用户模式),以及

6(重启系统).

Debian系统运行id=2,它表示进入多用户模式时默认运行级别为''2'',所以将运行/etc/rc2.d/中的脚本.

实际上,任意目录/etc/rcN.d/中的脚本都是指向/etc/init.d/的符号链接(软件链接#ln-s源文件目标文件名).然而,每个/etc/rcN.d/目录中文件的名称用来指定/etc/init.d相应脚本的运行方式.特别是,在进入任何运行级别之前,所有名称以''K''打头的脚本均被运行,这些脚本的工作是中止进程.然后,所有名称以''S''打头的脚本被运行,这些脚本的工作是启动进程.名称中跟在''K''或''S''后的两位数规定了脚本运行的先后次序,数字小的脚本先运行.

采用这种工作方式是因为/etc/init.d/中的脚本均有一个参数规定脚本`start'',`stop'',`reload'',`restart''或`force-reload'',脚本按各自参数的赋值执行任务.这些脚本甚至可以在系统启动后,用来控制各种进程.

例如,使用带`reload''参数的命令

/etc/init.d/sendmailreload

发给sendmaildaemon进程一个信号,要它重读配置文件。

我们可在rc.local文件中添加开机要启动的项目,就可以达到开机自动启动的效果。因为rc.local在/etc/init.d/下。rc.local又默认符号链接到debian开机启动脚本rc2.d下。或者可直接在/etc/init.d下创建一个可执行的脚本,直接在rc2.d中做一个符号链接。如:在init.d下创建了一个firewall的脚本,在rc2.d下一个符号链接#ln-s/etc/init.d/firewallS20firewall 下载本文示例代码
阅读(193) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~