Ubuntu/Debian与REDHAT系统启动脚本之对照
作者: (转载自 mylxiaoyi) | |
2007-03-04 | |
Ubuntu 出名了,但用惯了RH(fedora/redhat/centos),刚开始还真是有些不顺手。对于我来说最大的影响就是服务配置。在 Ubuntu/Debian 下并没有 chkconfig,要是手动编辑 rc.*** 就太烦人了不是?还好……有 update-rc.d,接着往下看…… **************2007-4-22 加入************* 新近发现一个“sysv-rc-conf ”,用法极似“chkconfig ”! 安装简单: sudo apt-get install sysv-rc-conf 另外,还有个类似的是“rcconf ”。 ****************************************** (注:本文下面部分完全转载自mylxiaoyi 的"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/inittab 文件中的不同 主要配置系统初始化过程的文件是/etc/inittab。这个文件管理在系统启动时的脚本。下面的是与其他的发行版本中的inittab文件所不同的几个地方: 1 Debian的默认运行级别是2. 2 Debian并不会在/etc/inittab文件中中配置X Window系统显示管理器。 3 运行级别2与3是相同的,而运行级别4与5是相同的。 4 运行级别4与5只会运行一个虚拟终端,而运行级别2与3却会运行6个。 |