SysV和BSD的
启动模式 一般来说,Linux
系统中有两种不同的初始化
方法。
1)BSD系统初始化
2)系统初始化
Slackware使用BSD风格的init
脚本,和许多其他的发行版使用System V风格的init脚本。SysV和BSD脚本易于阅读,那就是,他们
都是shell脚本,而不是编译的
程序的主要
区别是如何的脚本设计。
SysV脚本更容易接受如启动、停止和
重新启动,
参数,根据程序的开始,所以你可以使用
命令如 / /初始化等。D /绑定开始启动和停止 / /初始化绑定等。D /绑定停止。
SysV启动的也倾向于使用符号链接来组织启动过程,例如,在/ etc / RC。D /钢筋混凝土。4,可能会有各种各样的符号链接指向其他
目录真正的脚本。这些链接的命令会像s10network,s25xdm等等。它的意思是开始。如果这是k,则表示杀死,该数字指定脚本
执行的
顺序。
SysV风格的启动脚本的主要优点是,它可以被
配置为自动配置很多东西。例如,如果你
输入runlevel 6,你可以
创建一个链接,称为k75bind
解除绑定,提供链接的
文件的建立做了这个。
SysV风格的脚本的主要缺点是它太弯了,如果我想添加一个
服务,我会先写一个剧本SysV风格(不容易)。要
处理好和start至少。然后,我必须确保符号链接的
正确设置在每个
运行级别运行的服务。如果你只需要运行服务脚本的两个
连续的数字之间,我需要做一些符号链接(例如,s10xxx重编和s11yyy已经存在,而我想让zzzz运行在他们之间,我需要重新创建一个符号链接把zzzz)。
这也是一段改变SysV启动过程中一个非常痛苦的事情。如果我不想在下次启动时运行xxx服务,最简单的方法是
删除链接s10xxx。这并不难。但如果我想删除它,在每一个运行级别,我需要从每一个相关的目录删除s10xxx。然后,如果我改变了主意,想重新运行xxx,我需要重建所有的符号链接手动。
它是在重复启动过程非常复杂,而Slackware是不会这么做的:它使用BSD风格的启动脚本。
BSD风格的脚本是简单的shell脚本,他们倾向于顺序运行,没有启动或停止等参数。只要系统进入运行级别,它将被执行,它是如此的简单。
的BSD风格的主要缺点是,你需要一些其他的方式来
控制后台服务。例如,如果我想停止绑定,我会先使用命令ps ax grep命名|找到PID命名,然后杀了这个PID(或与该PID文件名)。但我不能简单地命令 / /初始化等。D /绑定停止(除非我已经写了一个SysV脚本)。
BSD风格脚本的主要优点是,他们阅读和
编辑非常容易。例如,如果我想添加一个服务zzzz,我可以添加一行 / usr /局部/斌/ zzzz 等 / / rd.d rc.local,所以只要rc.local运行级别执行,zzzz会跟着跑。如果我只想在runlevel 4执行zzzz,我可以把它放在一个 / / RC等。D /钢筋混凝土。4(不是目录,而是一个脚本)。如果我想改变执行顺序,我只需要的地方zzzz之间适当的服务。大多数编辑器
支持在文件之间插入
文本(即使ED支持它们),也可以用注释的方式停止服务,然后删除注释以使其再次运行。
因此,当大多数分布采用SysV风格,Slackware采用BSD风格。很多Slackware
用户,使用BSD风格的安逸胜过SysV风格的强大
功能。当然,你可以有自己的观点。
与一般人的看法相反,从一种风格转变到另一种风格并不难。只要
复制inittab和RC文件从一个系统到另一个。init程序本身并没有改变,所以称为风格;它是在inittab设置和调用脚本。
翻译:现在,Slackware在 / / RC等提供rc.sysvinit脚本。D /满足某些业务需求的基础上,为提高SysV启动过程兼容的过程。此外,许多脚本,设置服务,参数如启动、停止和
重启也是可以接受的,如rc.sendmail,rc.sshd等等。