Linux服务启动全线提速手记(1)


Linux系统是十分优秀的操作系统,但启动时间长是该系统的缺点之一。那么能否通过一些设置来缩短Linux系统的启动时间呢?当然可以。本文将向读者展示如何在不牺牲Linux系统可用性的前提下,缩短系统的启动时间。要实现这一目标,需要了解系统的各类服务及它们之间的从属关系,进而使它们在条件允许的前提下同时启动,从而大大节省系统启动时间。

准备工作

如果想采用本文介绍的方法对Linux系统进行设置,首先要熟悉Linux系统的设置语言。对系统的启动过程进行设置是一项比较危险的行为,容易造成系统无法启动。一旦发生这种情况,最好重新启动系统后选择单一用户模式,将系统还原并重启。当然,最重要的是在设置前备份重要数据。

其次,建议用户最好在对本机系统进行修改前,先进行修改测试。如果用户只有一台计算机,那么这里建议使用用户模式Linux系统UML)进行测试。UML是一个内核补丁,它可以将Linux系统的内核转译成为二进制,以便用户可以像使用普通软件那样运行Linux系统。一旦出现意外情况,损失的只是UML,而原系统却可安然无恙。

Linux系统的启动顺序和runlevel

Linux系统的启动包括多个步骤,这里主要介绍一下内核加载后的系统启动步骤。用户可以通过运行/sbin/runlevel命令来查看系统目前的runlevel。runlevel是Linux系统用来区别系统高级启动设置类型的数字。这些数字十分常见,它们中的绝大多数都有着明确的含义。以Red Hat Linux系统为例,它的runlevel主要有以下几种

1 )anacron 可执行crontab既定时间内没执行的工作。

2 )atd 单一使用的例行性命令。

3 )apmd 了解系统电池电量手提式计算机使用)。

4 )arpwatch 持续监测网络卡MAC与IP。

5 )autofs 自动挂载一些装置。

6 )cups 打印服务。

7 )chargentcp)当客户发送一个数据报时,TCP服务器发送一串连续的字符流直到客户中断链接。

8 )chargen-udp UDP服务器发送一个随机长度数据报。

9 )crond 执行/etc/crontab中的例行性命令。

10 )daytime 日期时间服务器。

11 )daytime-udp 日期时间服务器。

12 )dhcpd 动态主机协议分配服务器。

13 )echo 回显服务器。

14 )echo-udp 回显服务器。

15 )gpm 文字模式中使用mouse从事移动、复制、粘贴等功能。

16 )httpd www服务器。

17 )identd 守护进程服务器。

18 )finger 让远程使用者查看本地端使用者信息。

19 )iptables 路由规则防火墙、NAT等)。

20 )kudzu 开机时检测新装置。

21 )mysql mysql数据库服务器。

22 )named DNS服务器。

23 )network 网络功能。

24 )keytable 设定键盘上字母格式。

25 )postgresql postgresql数据库服务器。

26 )random 随机服务器,提高系统安全性。

27 )rarpd 逆地址解析服务。

28 )smb 兼容windows。

29 )sshd ssh远程控制。

30 )syslog 系统记录服务。

31 )telnet telnet远程控制。

32 )tftp 简单文件传送服务。

33 )xfs 图形界面服务。

34 )xinetd 守护进程......

init如何初始化系统

init可以通过一个ASCⅡ设置文件得知如何改变系统的runlevel。通常情况下该设置文件可以指引init来执行/etc/rc.d/rc命令,从而获得runlevel的相关信息。

系统服务

用户所需要的各种系统服务都是由rc指令程序来启动的。系统潜在的服务纷繁复杂。大多数Linux系统通常只提供sshd(SecureShell服务)、syslog(系统日志工具)和lpd(打印服务)等功能。

用户可以从/etc/rc.d/目录中找到所有的服务。如果打开这个目录,会发现许多服务只是一种外壳程序,它只是引导其它程序来完成工作。也许有人会问,rc程序是如何知道每个runlevel要运行哪些程序呢?答案是在/etc/rc.d/目录下面与init.d/目录并列的还有一些目录,它们各自对应着自己的runlevel。它们的名称为rc*.d/,例如runlevel 5就是/etc/rc.d/rc5.d/。每个rc*.d/目录中包含着两个符号链接,这些链接可以连接到/etc/init.d/目录中的指定服务程序。



相关内容