Slackware的启动(init)过程

导言

在一次IBM于阿姆斯特丹举办的Linux研讨会上,一位老师提出以下说法:“启动是Linux最难的部分。但是,一旦内核已经载入,并由init接管之后,你就畅行无阻了。从那个时刻起,所有发生的事情你都可以在脚本和文档(man page)里面读到。”

他当然是对的。在启动Linux机器的过程中没有什么秘密。你能在ASCII文件中读到所有东西。但是,在跟踪这些脚本的过程中也很容易迷路。Slackware与别的发行版不同之处在于它坚持用BSD风格的启动过程,而不是像它们那样用Sys V的启动过程。

在Sys V的启动系统中,所有起动/停止的脚本都放在 /etc/rc.d目录中。在每一个运行级(runlevel)都有一个目录(即 /etc/rc.1, /etc/rc.2 等等),其中全是该运行级所需运行脚本的链接。当进入一个运行级时,有一个大的脚本来处理这些链接以起动(或停止)该运行级的服务。

Sys V启动过程用在Redhat、Suse中,我将把解释它的事留给用这类系统的人。没有实际使用它的机器,我恐怕很快会在细节上晕头转向。

Slackware的用户(Slackers)多数认为Sys V启动过程既复杂又难于维护。老实说,Redhat和Suse用户的想法正好相反。不过,先跟着我,然后你自己作出判断。

在本文档中,我将试着证明IBM的老师是正确的。我将循着Slackware(8.1)的启动过程,用脚本和man page作为指导。会引用很多,而较少(我自己的)文字。

又及:你可能注意到,英语不是我的母语。我会尽量经常地用拼写检查程序,但它在语法方面的用处不大。无论在内容或语法方面的错误,请不吝赐教。此外,我非常喜欢大家对我写的东西提出看法。

运行级(runlevel)

我们会很多次谈到运行级,所以现在是个好机会来解释一下运行级。运行级是决定某机器的服务等级的*nix方式。在每个运行级中,人们可以定义哪些服务要激活、哪些不用。原则上,可以有很多运行级。实际上,只有5个:

单用户运行级,只有最少的服务在运行。这个运行级经常用于系统维护。

多用户运行级,所有提供的服务都在运行。这些服务可能是诸如HTTP服务器、电子邮件服务器、SQL服务器之类。正是系统管理员(你)所需要的。

多用户运行级,和前面一样,但这次有个图形界面的登陆管理器。

多用户运行级之一就是机器正常的运行状态。你可以决定另外的运行级。例如,用于远程维护的有网络支持的单用户运行级。

上述运行级之外,还有两个特殊的运行级:

停止系统(halt)的运行级。

重新启动(reboot)的运行级。

时间: 2024-09-29 11:27:44

Slackware的启动(init)过程的相关文章

Oracle 数据库实例启动关闭过程

--================================ -->Oracle 数据库实例启动关闭过程 --================================ /*     Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行装载.Oracle数据启动的过程被划分为 几个不同的步骤,在不同的启动过程中,我们可以对其实现不同的操作,系统修复等等工作,因此了解Oracle数据启动.关闭是非常 有必要的.下面详细了Oracle Database

Android的init过程详解(一)(转)

  本文使用的软件版本 Android:4.2.2 Linux内核:3.1.10      本文及后续几篇文章将对Android的初始化(init)过程进行详细地.剥丝抽茧式地分析,并且在其中穿插了大量的知识,希望对读者了解Android的启动过程又所帮助.本章主要介绍了与硬件相关初始化文件名的确定以及属性服务的原理和实现.      Android本质上就是一个基于Linux内核的操作系统.与Ubuntu Linux.Fedora Linux类似.只是Android在应用层专门为移动设备添加了

Android的init过程详解(一)

Android的init过程(二):初始化语言(init.rc)解析 本文使用的软件版本 Android:4.2.2 Linux内核:3.1.10      本文及后续几篇文章将对Android的初始化(init)过程进行详细地.剥丝抽茧式地分析,并且在其中穿插了大量的知识,希望对读者了解Android的启动过程又所帮助.本章主要介绍了与硬件相关初始化文件名的确定以及属性服务的原理和实现.      Android本质上就是一个基于Linux内核的操作系统.与Ubuntu Linux.Fedor

Android的init过程(二):初始化语言(init.rc)解析

Android的init过程(一) 本文使用的软件版本 Android:4.2.2 Linux内核:3.1.10     在上一篇文章中介绍了init的初始化第一阶段,也就是处理各种属性.在本文将会详细分析init最重要的一环:解析init.rc文件. init.rc文件并不是普通的配置文件,而是由一种被称为"Android初始化语言"(Android Init Language,这里简称为AIL)的脚本写成的文件.在了解init如何解析init.rc文件之前,先了解AIL非常必要,否

Android的init过程(二):初始化语言(init.rc)解析【转】

转自:http://www.cnblogs.com/nokiaguy/p/3164799.html Android的init过程(一) 本文使用的软件版本 Android:4.2.2 Linux内核:3.1.10     在上一篇文章中介绍了init的初始化第一阶段,也就是处理各种属性.在本文将会详细分析init最重要的一环:解析init.rc文件. init.rc 文件并不是普通的配置文件,而是由一种被称为"Android初始化语言"(Android Init Language,这里

linux安装教程(红帽RedHat Linux 9)光盘启动安装过程图解

RedHat Linux是目前世界上使用最多的Linux操作系统.因为它具备最好的图形界面,无论是安装.配置还是使用都十分方便,而且运行稳定,因此不论是新手还是老玩家都对它有很高的评价.现在,RedHat Linux又出了9.0新版本,在原有的基础上又有了很大的进步.它完善了图形界面,增强了硬件的兼容性,安装起来更加得心应手,尤其增强了多媒体方面的能力--新版本的XFree 4.0.1使你能够在Linux下播放多媒体文件.它还采用了OpenSSL 128位加密技术,使你的网络通信更加安全;最新的

run.conf配置文件可以在JBoss启动的过程中通过脚本来动态修改么?

问题描述 run.conf配置文件可以在JBoss启动的过程中通过脚本来动态修改么? hello,现在情况是这样的,多个应用在一个JBoss上,共用一个run.conf文件,但是现在相对部分的应用中的JVM参数进行修改:所以想到,是不是能够在JBoss启动的是,针对应用将run.conf进行动态的修改?具体修改只是要加入一条java_opts.

Android: 启动init.rc 中service的权限问题【转】

转自:http://www.linuxidc.com/Linux/2011-04/35014.htm   通过property_set("ctl.start", service_xx); 来启动init.rc中的service是一个很方便方法来调用某个可执行程序或某个脚本程序 service service_xx  /system/bin/xx disabled     oneshot 但在非AID_ROOT.AID_SYSTEM 用户的进程中调用ctl.start ctl.stop会

Android的init过程详解(一)init的初始化

本文使用的软件版本 Android:4.2.2 Linux内核:3.1.10 本文及后续几篇文章将对Android的初始化(init)过程进行详细地.剥丝抽茧式地分析,并且在其中穿插了大量的知识,希望对读者了解Android的启动过程又所帮助.本章主要介绍了与硬件相关初始化文件名的确定以及属性服务的原理和实现. Android本质上就是一个基于Linux内核的操作系统.与Ubuntu Linux.Fedora Linux类似.只是Android在应用层专门为移动设备添加了一些特有的支持.既然An