`
- 浏览:
322888 次
- 性别:
- 来自:
成都
-
Slackware启动脚本与System V启动脚本的区别
Slackware版本:Slackware 7.0及以上
Slackware 使用BSD风格的init脚本,而很多别的发行版使用System V风格的init脚本。SysV和BSD脚本都是能让人读懂的,即它们都是shell脚本,而不是已编译的程序。主要的区别在于脚本是如何设计的。
SysV脚本倾向于接受诸如start、stop、restart之类的参数,依它所启动的程序而定。所以你可以用 /etc/init.d/bind start 这样的命令来启动BIND,并用 /etc/init.d/bind stop 来停止BIND。 内容来自dedecms
SysV的启动还倾向于使用符号链接来组织启动进程,例如在 /etc/rc.d/rc.4/中,可能会有指向别的目录中的真正的脚本的各种各样的符号链接。这些链接的命令会像是 S10network、S25xdm之类,其中的S表示启动(start)该项服务(如果是K,则表示kill),而数字指定了脚本执行的顺序。
SysV风格的启动脚本的主要优点在于能够设置成自动配置许多东西。例如,若你进入runlevel 6,你可以建立一个链接叫K75bind来终止BIND,前提是链接所指向的文件已经设置好来做这件事。
SysV风格脚本的主要缺点是太过弯弯绕。假如我想增加一个服务,我要先写一个SysV风格的脚本(不是容易的事),它至少要处理“start(还可能有“stop)。然后,我必须确保在每个要运行这个服务的runlevel中正确地设置好符号链接。如果恰好这个服务需要在已经连续编号的两个脚本之间运行,我就需要做一些对符号链接重新编号的工作(例如,S10xxx和S11yyy已经存在,而我想让zzzz在它们之间运行,我就需要对前两者之一重新建立符号链接来把zzzz挤进去)。 dedecms.com
想暂时改变SysV的启动进程也是非常痛苦的事情。假如我不想在下次启动时运行xxx服务,最简单的办法是删除S10xxx这个链接,不算难吧?但如果我想在每个runlevel中都去掉它,我就需要从每个有关目录中删除S10xxx这个链接。然后,假如我改了主意,想重新运行xxx,我需要手工重新建立所有的符号链接。
这样子无疑是在已经很复杂的启动进程上叠床架屋,而Slackware是不会这么做的:它用BSD风格的启动脚本。
BSD风格的脚本是直接了当的shell脚本,它们倾向于顺序运行,而不需要start或stop之类参数。只要系统进入了它们的runlevel就会执行,就这么简单。
BSD风格的主要缺点是你需要一些其他方法来控制后台服务。例如,若我要停止BIND,我要先用命令 ps ax|grep named 找出 named的PID,然后kill这个PID(或者用这个pid的文件名)。但是我不能简单地下个命令 /etc/init.d/bind stop (除非我已经写了个这样的SysV脚本)。
BSD风格脚本的主要优点是它们非常容易阅读和编辑。例如,若我想增加一个服务zzzz,我可以在 /etc/rd.d/rc.local中增加一行 /usr/local/bin/zzzz,这样只要是执行rc.local的runlevel,zzzz就会随之运行。假如我只想在runlevel 4执行zzzz,我可以把它放在 /etc/rc.d/rc.4 (不是目录,而是一个脚本)中。如果我要改变执行顺序,我只要把zzzz放在适当的服务之间,多数编辑器都支持在文件中间插入文本(就算ed都支持)。还有,你可以用注释的方式停止一个服务,然后去掉注释让它重新运行。 copyright dedecms
因此,当多数发行版采用SysV风格时,Slackware采用了BSD风格。对于许多Slackware用户,BSD风格的易用性胜过SysV风格的强大功能。当然,你可以有自己的意见。
与普遍的观点相反,从一种风格转到另一种并不那么困难,只要把inittab和rc文件从一个系统拷贝到另一个系统即可。init程序自身没有改变,所谓“风格多是在inittab和它所调用的脚本中设置的。
译注:现在slackware为了提高兼容性,在/etc/rc.d/提供了rc.sysvinit脚本以适应某些基于SysV启动过程的商业程序的需要。另外,在许多设置服务的脚本中,也接受start、stop、restart这一类参数,例如rc.sendmail、rc.sshd等。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
如果您使用的不是 Slackware Linux,那么配置文件的结构与我谈到的结构会大不相同。 本文将说明如何在系统运行时更改运行级别,而不是通过重新引导来更改运行级别,还说明了为什么执行此操作以及何时执行。
speex.SlackBuild:Speex的Slackware构建脚本
kvazaar.SlackBuild:用于Kvazaar的Slackware构建脚本
pycrypto.SlackBuild:用于PyCrypto的Slackware构建脚本
openal.SlackBuild:适用于OpenAL Soft的Slackware构建脚本
libssh2.SlackBuild:用于libssh2的Slackware构建脚本
Slackware 设置Slackware 设置Slackware 设置
该项目致力于使用一种格式,使整个Slackware社区都能参与进来,并能够根据需要添加/编辑内容,从而使Slackware文档保持最新。
变硬这是用于加强Linux安装的脚本。为什么我做这个已过时不是的成员,因此无需下载现成的脚本为了学习为了最大程度地减少调整新安装所需的精力也为了保持一致性它有什么作用?常见的启用创建法律标语在/etc/security...
Slackware安装说明文档---Installing Slackware Linux下部
Slackware 用户手册的中文版,Slackware和Red Hat、Debian、Ubuntu等等主流发行版有很多不同。也许最明显的就是这些主流发行版缺乏Slackware对系统管理员提供的“关照”。许多发行版都有自己用于配置各种服务的图形...
解决那些很少或没有GNU / Linux经验的人。 涵盖了Slackware Linux的安装,基本的GNU / Linux命令以及Slackware Linux的配置。
Slackware安装说明文档---Installing Slackware Linux上部
Slackware Linux Essentials.pdf
官方slackware LINUX入门手册,英文PDF版本。
Slackware Linux比较难安装,安装好之后重启往往无法进入系统,这里我上传一个经过自己成功安装,之后制作的一个安装教程。
Slackware Linux Essentials
slackware 最早发行版本,基于linux 1.0
很不错的SlackWare安装教程,有修改过.
slackware中文手册,希望可以帮助到您。感谢背后翻译的人员,谢谢你们。