并行启动服务加快系统启动速度

2016-01-29 18:27 2 1 收藏

并行启动服务加快系统启动速度,并行启动服务加快系统启动速度

【 tulaoshi.com - Linux 】

今天无意间看到一篇使系统服务并行运行加快系统启动速度的文章,于是尝试了下,感觉办法很不错,同时让我对lfs的系统引导脚本有了更深的理解现在系统从加载内核到login只要5秒,飞一样的感觉 ^_^
Ok ! Let`s Go ! 因为要修改系统启动的脚本,很可能让系统启动不正常,所以最好有双linux系统,即使修改错误了还可以从另一个系统引导修复。如果很不幸,没有的话,可以先学下这招,紧急救护系统也有用 :p 紧急救援模式: grub菜单中选择linux,按e,e,进入编辑模式,kernel......那一行最后加上init=/bin/bash,这样引导系统可以得到一个bash shell这样进入的系统会是read-only的,首先先使用fsck检查系统fsck -a /dev/hdaX 处理根分区fsck -R -A -a 处理其他分区如果系统在上次重启,是正常重启的,文件系统是正常卸载的,可以不用fsck检查直接把系统挂载成read-write的mount / -o remount,rwmount /procswap on -a 打开所有的交换分区在修复好系统后将系统重新挂载成ro的,就可以安全重启了。mount / -o remount,ro 简单的说一下linux系统的启动过程。 当grub加载内核后,内核执行/sbin/init,init程序读取/etc/inittab内容,开始系统的初始化。 init读取initdefault字段,取得系统运行级别 id:3:initdefault: 这里启动级别是3,通常是多用户字符登陆模式 init读取sysinit字段,开始系统基本的初始化 si::sysinit:/etc/rc.d/init.d/rc sysinit这一行表示init会去执行/etc/rc.d/init.d/rc这个文件,sysinit是传入的参数,这里要做的是:挂载proc系统拉,检查根分区拉,开启swap拉。等等但是在不同的发行版可能不同,比如在Mandrakelinux中是:si::sysinit:/etc/rc.d/rc.sysinit这样初始化的脚本就成了/etc/rc.d/rc.sysinit init读取wait字段,开始系统服务初始化 l3:3:wait:/etc/rc.d/init.d/rc 3经过基本初始化后,init读取run-level中的脚本,这些脚本位于/etc/rc.d/rcX.d目录下。X是当前的运行级别.这里是系统启动的服务,比如network,alsa,httpd....等/etc/rc.d/init.d/rc接收一个运行级别作为参数,然后逐一的开启/关闭/etc/rc.d/rcX.d目录下的脚本。wait表示init会等待它结束再去执行其他程序。 有些发行版在执行rcX.d之后去执行/etc/rc.d/rc.local 最后就看到可爱的login拉在/etc/rc.d/rcX.d中的脚本都是以"SXX+服务名"或者"KXX+服务名"组成的并且都是到/etc/rc.d/init.d中相应脚本的符号链接,有的发行版是/etc/init.d,只是位置不同而已。其中XX是0-9的数字,数字越小,则启动的时间越早。以S开头的表示系统启动时传递start参数的服务,就是开启拉。K开头的就是传递stop参数。/etc/rc.d/rc3.d:S10sysklogd@ S20network@ S25random@ S30httpd S40alsa@ S85numlock@可以看出,我的系统进入rc3.d时首先启动的服务是sysklogd,最后是numlock很明显,httpd服务必须要在network之后运行,不然没有网络哪来的web服务?在lfs中是通过ls -v 列出它们,然后逐一的执行它们,这样就会使系统启动的速度很慢,服务越多越明显现在希望做的就是:让那些相互之间没有依赖关系的服务可以同时开启,而不是逐一的执行这样系统启动的速度就会大大的提高了。make 就是实现这个功能的工具。相互有依赖关系的服务,让make去解决它们的依赖性。再使用make -j 参数使服务可以并行启动。在makefile中写入服务之间的相依赖关系:httpd : network这样就表示httpd依赖network,当network启动完毕,就可以立刻启动httpd而其他不相依赖的服务列在makefile中,同时开启。原理就是这样,下面是我的实际做法:首先是写make的配置文件,该文件的样例在本文的结尾可以找到./etc/rc.d/runlevel.mk######################################################################### Description : Gnu Makefile to control the services in the specified# runlevel. It will run the required services, and log# the output of the services to the file# /var/log/initd.start (for service startup) and# /var/log/initd.stop (for service shutdown).## This controlling program is designed to be invoked by# the "/etc/rc.d/rc" script.## Author : jameshunt@uk.ibm.com## Notes :## - Run as,## make [-n] -j -f runlevel.mk # RUNLEVEL= # JOB=## - $(JOB) is not validated - that is left to the service program.# - $(RUNLEVEL) is not validated - that is left to the calling program# (usually /etc/rc.d/rc).# - It wouldn't take too much effort to auto-generate this Makefile.########################################################################## passed as a parameterRUNLEVEL =# passed as a parameter (start, stop, status, etc)JOB =# set to a value to enable debug outputDEBUG =######################################################################### START CONFIGURATION# system commands used by this facilityCAT = /bin/catRM = /bin/rmECHO = /bin/ec

来源:https://www.tulaoshi.com/n/20160129/1505836.html

延伸阅读
标签: 聊天软件
  有没有觉得QQ在登录时总是很慢!那么就用我的方法试试吧! ·把QQ面板上多余的选项都“隐藏”掉: 方法:“菜单”—“系统设置”—“面板设置”—“系统面板”,把这里的选项全部都隐藏掉。 ·关闭自动更新功能: 方法:“菜单”—“系统设置”—“自动更新设置”,选择“不启动自动更新”选项。 ·关闭...
标签: 电脑入门
根据不同的电脑类型,选择热键,直接启动一键U盘装系统工具( 重要提醒:选择热键前,请先插入U盘 ) 组装机主板品牌笔记本品牌台式机主板品牌启动按键笔记本品牌启动按键台式机品牌启动按键华硕主板F8联想笔记本F12联想台式机F12技嘉主板F12宏基笔记本F12惠普台式机F12微星主板F11华硕笔记本ESC宏基台式机F12映泰主板F9惠普笔记本F9戴尔台...
标签: 电脑入门
1,要选择NERO刻录程序中的Nero Burning ROM 2,弹出对话框 3,选择刻录器 同上 4,选择刻录映像文件 5,选择系统镜像 6,进行设置 点击刻录 ok
内容提要 本文以RedHat9.0和i386平台为例,剖析了从用户打开电源直到屏幕出现命令行提示符的整个Linux启动过程。并且介绍了启动中涉及到的各种文件。 阅读Linux源代码,无疑是深入学习Linux的最好方法。在本文对Linux启动过程的介绍中,我们也尝试从源代码的视角来更深入的剖析Linux的启动过程,所以其中也简单涉及到部分相...
标签: 电脑入门
你是否有过这样崩溃的经历,当你急冲冲的打开电脑时,却遇上拖拉机似的开机速度,这会让人很抓狂。今天将从硬件方面为大家讲解影响启动速度的几大因素,大家都赶紧来了解了解,让你的windows xp 跑得更快. 影响电脑启动速度的主要硬件是主板和硬盘以及内存,而与CPU关系不大。 主板是各种电脑配件的基地,在开机时要做的工作很多,比如自检、...

经验教程

97

收藏

36
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部