曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5706|回复: 2
打印 上一主题 下一主题

[SUSE] 系统启动

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2009-5-1 22:50:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ramdisk
最初的 ramdisk 常常包含需要挂在到 / 文件系统的必要驱动。内核文件里则含有基本的 IDE 磁盘设备驱动,所以这些不会由初始 ramdisk 来装载,但 IDE 的 CD-ROM 设备驱动常由初始 ramdisk 来装在。类似的,像 SCSI 设备驱动既可以编译进内核中或者也可以由初始 ramdisk 来装载。对于用在初始 ramdisk 上的文件系统类型驱动必须编译进内核中,但如果你希望内核文件越小越好,那其他的一些文件系统驱动可以由初始 ramdisk 来装载。对于磁盘上的根文件系统(如 ext2,ext3)必须包含在内核中或者是初始 ramdisk 中。

如果丢失了初始 ramdisk ,那么可能无法装载根文件系统,这也就无法完成启动进程,这时可以采用 SUSE 的救援系统。

一旦初始 ramdisk 已经装在任一个需要访问根文件爱你系统的驱动,这时它自己就会卸除挂载,接着内核就会回收和 ramdisk 所用的那部分内存。当这些工作做完时,根文件系统就被装载进来,然后通过从 /etc/inittab 中读取默认的运行等级 runlevel 信息,然后启动和这默认运行等级相关联的程序。

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
沙发
 楼主| 发表于 2009-5-2 01:50:55 | 只看该作者

runlevel(运行等级)

与某一个 runlevel 相关联的进程由 /sbin/init 来启动。

一般使用 0-6 个等级,第 4 等级未用
Runlevel
描述
0
关机
1,s,S
单用户模式,只允许 root 登录,没有其它服务运行
2
多用户,无网络,用户仅能在本地登录
3
多用户,有网络,用户可本地或网络登录
4
未用( 保留 )
5
多用户,有网络,有X Windows
6
重启

手动切换 runlevels
/etc/inittab 里有以下这么一行:
# The default runlevel is defined here
id:5:initdefault:
其中的 5 表示系统默认以第 5 等级启动。
当 init 发现默认等级为 5 时(别的等级也一样),就会从以下行:
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
#l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
找到相应的目录入口并进入到相应的目录中执行相应的脚本。如默认等级为 5 时,就进入 /etc/init.d/rc5.d 目录下执行里面的脚本。
各个运行等级对应的目录为:
0
/etc/init.d/rc0.d
1
/etc/init.d/rc1.d
2
/etc/init.d/rc2.d
3
/etc/init.d/rc3.d
4
/etc/init.d/rc4.d
5
/etc/init.d/rc5.d
6
/etc/init.d/rc6.d
在这些目录里,有许多的脚本文件---其实这些文件只是 /etc/init.d 目录下脚本的软链接。这些脚本的名字有的以 K 字母开头,有的以 S 字母开头;以 K 开头的脚本表示 "KILL",其意是系统启动时不会启动这些脚本所对应的程序(KILL动作在等级切换时才会发生),以 "S" 开头的脚本表示 "Start",其意是系统启动时会启动这些脚本所对应的程序。检查 S 和 K 的工作都由 /sbin/init 来完成。

在相应的目录下建立这些脚本软链接的目的一来是为了省空间,二来是方便当 /etc/init.d 中的脚本更新时一次性让各目录下的脚本链接也相应更新。

需要注意的是,当系统以一个默认的等级启动后,并不是一直就在这个等级上呆着不动了,它是可以切换的。比如关机时,就是从第 5 等级切换到第 0 等级。在此切换过程中,会触发 init 运行/etc/init.d/rc5.d 下所有的 kill 脚本,然后运行所有的 /etc/init.d/rc0.d 下的 start 脚本(当然,关机时,rc0.d 里没有 start 脚本)。

在 K 和 S 后面接的数字表示脚本执行的优先权,数字小的执行在先,数字大的执行在后。这里的先后有程序的依赖关系,比如一个需要确定网络启动后才可以进行初始化的程序,那么他就应该在网络启动之后启动,也就是在 S 字母后的数字要比网络的数字要来得大。

在 SUSE 里,可以使用 rcservicename 命令来启动和停止服务,当然也可以用 service servicename start/stop 命令来执行。比如要启动阿帕奇服务,那么就 rcapache2 start,要关闭就 rcapache2 stop 。

可以手动切换运行等级,加入从等级 5 切换到没有 X windows 的等级 3 ,可以:
init 3
假如需要等待若干秒后使切换等级生效,则可以:
telinit -t 10 3              #telinit 是 init 的软链接

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
板凳
 楼主| 发表于 2009-5-2 23:08:31 | 只看该作者

chkconfig

chkconfig 用来从一个指定的运行等级所对应的目录里增加或删除服务。
在 /etc/init.d 目录下的所有脚本对应的服务都可以用 chkconfig 来配置。

列出所有由 init 控制的程序的开关信息
chkconfig --list

可以单独配置在某个运行等级下要随机启动的服务
chkconfig vsftpd on
chkconfig vsftpd 35
在上面的命令中,设置 vsftpd 服务在运行等级3和5里随机启动。

若只需要在运行等级 5 下随机启动,则
chkconfig vsftpd 5
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-19 12:37 , Processed in 0.061821 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表