SlackwareLinux的启动过程
Linux用户正变得越来越成熟,这意味着他们希望配置系统来完成他们想要完成的任务,但目前Linux发行版通常伴随着自动匹配。
Joe Brockmeier研究了Slackware Linux初始化的过程。他讨论系统如何初始化服务,各种运行级别是什么,以及如何添加或从默认安装定制的系统中删除服务。
Linux用户越来越成熟,这意味着他们要配置系统完成他们想完成的任务。但目前的Linux发行版通常是自动配置的设备和启动服务,如发送邮件或Apache。这些分布不考虑不改变默认设置来运行服务,如作为Apache用户没有知识会捣乱的人和黑客利用脚本趁虚而入。这将耗尽系统资源,可以更好地应用--例如,更多的处理器时间,可用于地震或编译器你喜欢。由于缺乏控制是个坏东西;因此,让我们看看linux系统的启动过程初始化期间,发生在每个运行级别涉及到什么,以及如何自定义系统在运行时系统或切换运行级别。
我们的例子使用Slackware Linux版本对x86平台(参见本文后面的参考资料)。大部分的信息可以用在其他的Linux发行版,但它会在细节略有不同。特别是,Slackware init结构比它更类似于BSD UNIX的结构类似于系统V的结构,虽然在程序的最新版本的程序做出了一些让步,他们希望增加服务开始,但这些服务的期望是System V目录结构。(之间的差异看边栏,BSD和System V init脚本;。)
所有进程的父进程
Linux机器启动时会发生什么完成BIOS的任务后,系统会读取硬盘(或软盘或光盘,或ZIP驱动器Linux是非常灵活的)第一,和会遇到的引导装载程序。虽然食物和其他装载机已逐渐成为受欢迎的,这通常是Linux装载机(LInux LOader),一般称为LILO。
LILO装Linux内核到内存中并开始显示它的魔力。Linux内核初始化设备如SCSI卡,以及其他内核内置的硬件设备。内核运行init,它是运行在系统内核之外的第一过程。如果| ps ax grep 1实施,会看到init进程ID(PID)是1。
加载后初始化,读取inittab看看下一步做什么。Inittab告诉init运行级别进入,以及在哪里找到的运行级别的配置文件。
回到顶部
运行级别
运行级别是系统的所有服务在一个特定的时间定义(基本操作模式),Linux可以用几种方式操作:单用户模式,单用户网络多用户模式,多用户模式,开始与X窗口,等。本节将解释运行水平的概念,什么样的办学水平在Slackware,他们被称为。
运行级别是由数字或字母标记。不幸的是,不是所有的Linux发行版可以在每个运行级别解决问题的共识。在一些分布,运行级别3是一个多用户方式,使用X窗口登录。其他,如Slackware,指定运行级别3为多用户方式使用控制台登录。
据我所知,所有的Linux发行版都同意手术0级是停工,,运行级别1或S是一个单用户模式(在后面详细描述),运行级别6是重启系统,Slackware的办学水平如下:
运行级别0 =系统关闭
运行级别1 =单用户模式,主要用于维护
运行级别2 =从未使用
使用控制台登录运行3级=多用户模式
运行级别4多用户模式(XDM,GDM,KDM)使用X11会话管理器
运行级别5 =从未使用
运行级别6 =重新启动
运行级别S或s =单用户模式
没有记录的7到9的运行水平,并在理论上适用于自定义运行时。但我没有试图创造一个自己。BSD和System V init脚本之间的差异
说Slackware Linux使用BSD init脚本很容易,但它到底是什么意思呢
Linux和Unix系统,模拟BSD init风格有 / / RC等。D /目录,每个包含一个init脚本。因此,如果你想查看或修改init脚本运行级别4,你要编辑的文件 / / RC等。D / 4钢筋混凝土。
另一方面,基于V系统的初始化脚本系统具有独立的目录为每个运行级别。因此,如果你想编辑的运行级别4的初始化脚本,你应该查找 / / RC4等。D /目录查找脚本目录中的服务被修改。
这种差异导致伯克利软件分发的设计差异(BSD)和ATT UNIX System V UNIX,两者各自的Unix版本创建业务。跟Vi一起,Emacs,他们是一个在计算机世界中最激烈的辩论。
由于许多Linux发行版的系统启动布局,Slackware现在配备目录和rc.sysvinit init脚本保持兼容性。
回到顶部
运行级别的配置
如果你不使用Slackware Linux,配置文件的配置是完全不同的结构我谈。除了inittab文件,所有Slackware启动配置文件在 / / RC等。D /目录。
默认情况下,有5个运行级别钢筋。*目录中的脚本,如果链接是增加钢筋混凝土。0到6,有6的钢筋混凝土。
运行级init脚本是:
钢筋混凝土。0钢筋混凝土。0文件的链接6 RC。
用于多用户运行级别2, 3的init脚本,5
管理,运行级,单用户模式
系统初始化脚本
4 =运行第4级的初始化脚本(自动引导到选定的X会话管理器)
当重启或停止系统时init执行的脚本。6
RC的休息。*目录中的文件用于启动系统服务,如网络,内核模块,PCMCIA、Samba、Apache、netatalk,GPM的。如果你想使一个服务(如Apache)在任何操作水平完全无用,请使用chmod改变从可执行文件允许非可执行文件。删除这个文件也可以达到同样的效果,但我不推荐这种方法。也许以后的某一天你会发现你想重开服务,但是你不知道如何去做。
的rc.inet1脚本负责启动的基本网络服务,如设置主机名(IP和DHCP),rc.inet2脚本负责启动所有其他网络服务,如NFS,包的转发,SSH服务器,与其他网络守护进程。
所有Slackware / / RC等。D / RC。*文件是bash shell脚本,都可以手动编辑,但对于网络,你可能要先尝试用netconfig实用。虽然你需要手动编辑 / /等resolv.conf添加多个名称服务器,它可以处理所有的操作要执行,这是非常容易使用。
如果你是一个Linux初学者和需要修改系统,你应该确保你的引导软盘,复制所有的RC。*你想要编辑的文件。如果我拿不定主意,我通常将文件保存为钢筋混凝土。*。老让他们做不。他们一个非可执行文件。
回到顶部
使用跑步系统
现在系统正在运行,但是你需要用一个用户的方式做一些事情——你应该怎么做本文的下一部分将解释如何在系统运行时更改运行时级别,而不是重新引导以更改运行级别。它还解释了为什么以及如何执行操作。
回到顶部
telinit命令:改变运行级别运行的系统上
telinit命令可以用来改变运行级别。当执行telinit的根(或任何运行水平,你想改变),它改变了办学水平,关闭前的水平,然后开始下一个。
在某种程度上,您正在重定向系统的一部分。然而,关闭和重新启动服务的能力是Linux最可爱的特性之一。您要更改机器的IP地址吗没问题,只需做一些更改,然后重新启动网络服务。只要一切配置正确,备份和运行都是如此之快,以至于很难确定是否有任何更改。在其他操作系统中,即使桌面上的墙纸必须重定向,也必须重定向,请尝试:
唯一真正需要重启或完全关闭的Linux机器如果你添加或更改硬件,假设你使用的是不支持热插拔或已中断,需要使机器离线修复损坏的设备。不像其他的操作系统,我从未见过的重启要解决的问题,这些系统。我试着用一种命令hdparm挂了一个非生产性的机器,我想让这一切发生。
假设你想执行一些系统维护,而这些系统维护,系统处于单用户模式。例如,使用hdparm来调整硬盘。第一步是苏(开关)到root用户。
然后telinit命令被执行,使系统进入单用户模式:
telinit S - T 60
独立变量的T是可选的;它告诉telinit等待60秒其实切换到单用户模式之前。然而,只要执行命令,任何人登录到本机将在控制台上的一个警告,说明系统将开关操作水平或将被关闭的60秒。
在60秒的时间内,init关闭了不使用单用户方式的进程,并将系统变成一个单一用户模式。然后,您将被提示输入root用户密码以执行系统维护。
的过程中所采用的系统进入单用户略有不同。默认情况下,单用户模式需要初始化调用控制台命令和要求sulogin根用于登录在单用户模式。
系统进入单用户模式后,您应该看到以下消息:
给出系统维护的根密码
(或正常启动)型主提示符后:
执行维护之后,可以执行以下命令,使系统恢复到以前的运行级别:
telinit 3
这个命令告诉系统进入多用户运行水平。为此,2 或4 可以代替3。在slackware系统,运行级别4将使您能够使用一个X窗口管理人员进入多用户模式,所以你将直接登录到X窗口。
如果UPS挂在串行电缆,然后UPS可以向系统发送一个信号在电源关闭时,如果你的产品级系统有一个大的文件系统,它是非常有用的。我看到发生了什么事时,我没有完全卸载了100Gb RAID ext2文件系统(它花了4个小时完整的fsck)。另一方面,UPS的正确配置可以提醒系统,切断电源,telinit / init发送电源故障信号的信号,这将使init切换到单用户模式或完全关闭,根据其配置系统。
回到顶部
关机
嗯,因为你一直在使用电脑,你会觉得很累,打算去蓝色的大房间放松一下。幸运的是,你已经知道在结束时直接按下电源开关是一个很大的禁忌,但是你可能还不知道关闭系统的所有方法。
在Linux中,你可以使用三指的是重启系统的命令,即按下键顺序发送消息给系统,通知它执行关机过程并重新启动它。换句话说,除非你告诉它不要这样做。
如果你想禁用这个键控顺序,你需要注释一行代码在inittab:
部分Slackware inittab
脚本运行时,将用户的多#。
RC:2345:等待:
如何在# 三指礼。
#钙:ctrlaltdel: / sbin /关机- T5 -射频现在
注释上面的行以禁用Ctrl + + +热键。
当你关掉机器时会发生什么调用关闭命令可以逐步关闭系统。但是,关机本身并不能完成所有的工作,并通知init它应该运行到0, 1级或6级。
关机命令还通知所有登录到机器上的用户:机器将关闭。此后,将锁定登录命令,因此没有其他人可以重新启动会话。
要使用关闭命令关闭Linux系统,请使用以下命令:
关机
关机-现在H
如果要注销并将文件保存给用户,请使用以下命令:
关机- H - T 60
关机命令的H开关告诉系统关机后关闭。如果APM在内核中启用,它将关闭电源,或者您可以轻松按下开关。
T开关是系统启动关机时所需的时间,在几秒钟内。如果你想放弃关机,那么就可以使用这个开关。停止临时关机,输入:
关机- C
此命令将取消以前所有的关闭命令。如果出于某种原因,您不想关闭系统,但您需要发送给用户。当系统即将关闭警告时,你应该在关机时使用K独立变量。
知道如何使用telinit和初始化可以在修改Linux系统是有用的。在这篇文章中,我们讨论了改变运行水平和对Slackware Linux分布相关的初始化脚本的基本知识。目录结构和文件位置的分布不同,但读了这篇文章之后,你应该能够掌握系统的初始化脚本,即使你不使用Slackware Linux。
参考材料
你可以参考本文在developerWorks全球网站的英文文本。
请访问Slackware Linux的主页。
请订阅的安装,配置和定制Slackware Linux,这是Slackware的初学者指南,由Joe Brockmeier与他人合著。
如果您需要额外的背景,请阅读您的计算机如何引导。
请了解更多关于伯克利软件分发的设计之间的差异(BSD UNIX系统V),ATT UNIX和Vi和Emacs,这是一个在计算机领域的激烈争论。