Debian系统启动脚本

Debian系统启动脚本
Debian GNU/Linux使用SysV模块作为系统初始脚本。与RH一样,Debian使用一个扩展的SysV模块,而Slackware主要是基于BSD的,并为了使用SysV模块而写了几个方便的脚本。
定位SysV目录
Debian GNU/Linux,与大多数使用SysV模块的系统一样,将相关的目录存放在/etc目录之下。也就是说,SysV目录/etc/init.d是脚本自身,而/etc/rc1.d,/etc/rc2.d直到/etc/rc6.d是特殊运行级别的目录。而管理所有这些的脚本为/etc/rc.d/rc。
然而RH7.2,是将SysV目录全部放在/etc/rc.d目录之下。也就是就说,RH使用/etc/rc.d/init.d,而不是/etc/init.d。为了兼容性,RH创建了一些由/etc指向/etc/rc.d下相关目录的链接。
使用Debian工具进行工作
RH包含了一些用于自动管理SysV初始脚本过程的工具,也就是chkconfig民service。Debian并包含这些工具,但是却提供相似的管理工具:update-rc.d与invoke-rc.d。
使用update-rc.d
Debian的update-rc.d与RH的chkconfig工具相类似。然而chkconfig是一个二进制程序,而update-rc.d是一个Perl脚本。这些工具有不同的命令行选项,但是却执行类似的功能。下表列出了update-rc.d的一些用法。如果要查看完整的信息,我们可以查阅相关的和册页。
命令                                        功能
update-rc.d -f <service> remove            从所有的运行级别配置目录中是删除指定的服务
update-rc.d <service> start <order> <runlevels>    配置服务在运行级别列表中按指定的顺序启动
update-rc.d <service> stop <order> <runlevels>    配置服务在运行级别列表中指定的顺序停止
update-rc.d与RH的chkconfig之间最大的不同就在于update-rc.d是要设置所以指向/etc/init.d目录下服务脚本的运行级别链接,而chkconfig是要每一个运行级别单独配置服务。从本质上来说,这也就意味着每次我们使用update-rc.d改变一个运行级别,我们就不得不改变所有的。例如,下面的命令序列与命令chkconfig -level 2345 inetd off的作用相同:
$ update-rc.d -f inetd remove
$ update-rc.d inetd stop 20 0 1 2 3 4 5 6 .
第一个命令移除了所有的指向/etc/init.d/inetd服务脚本的运行级别链接,-f标志将会使得update-rc.d即使在inetd脚本本身已经存在的情况仍然进行相应的处理。第二个命令在每一个运行级别创建了一个服务级别为20的停止脚本。例如,这会创建一个/etc/rc3.d/K20inetd的符号链接来禁止运行级别3中inetd的运行。(在这里我们要注意的是我们要显示的添加reboot与shutdown运行级别,即0和6,仅管其中所有的服务都会被设置成为“stop“)。作为另外的一个例子,下面所显示的命令将会在运行级别3到5允许inetd的运行,而在其他的运行级别中则被禁止:
$ update-rc.d -f inetd remove
$ update-rc.d inetd start 20 3 4 5 . stop 20 0 1 2 6 .
Debian的update-rc.d最初看起来会叫人有一些迷惑,但是旦我们明白,我们就会发现他可以多么出色的完成我们的工作。
使用invoke-rc.d
Debian下与RH的service命令作用等同的命令为invoke-rc.d。这两个命令在大多数情况下的作用是完全相同的。例如,service inetd start与invoke-rc.d inetd start有相同的作用(启动inetd服务,相应的停止服务的命令为invoke-rc.d inetd stop)。invoke-rc.d命令也有一个额外的我们可以深入研究的命令参数,但是一般来说这两个命令是相同的。
/etc/initta中的不同
主要配置系统初始化过程的文件是/etc/inittab。这个文件管理在系统启动时的脚本。下面的是与其他的发行版本中的inittab文件所不同的几个地方:
1 Debian的默认运行级别是2.
2 Debian并不会在/etc/inittab文件中中配置X Window系统显示管理器。
3 运行级别2与3是相同的,而运行级别4与5是相同的。
4 运行级别4与5只会运行一个虚拟终端,而运行级别2与3却会运行6个。

 
posted @ 2007-01-22 03:38  jlins  阅读(586)  评论(0编辑  收藏  举报