linux启动 <下>

init进程是Kernel初始化完成之后启动的第一个用户空间进程,PID为1,所有其它的进程都由此进程fork()得来;
init进化:upstart, systemd等并行加速启动;

I. 配置文件/etc/inittab格式

id:runlevels:action:process
id,指定唯一标识;
runleves,指定该记录在哪些运行级别生效;
action,指定要采取的action;
process,指定要运行的程序;

RHEL6.x: upstart init
/etc/inittab
/etc/init/*.conf

II. inittab所配置的任务

  1. 设定默认运行级别
    如果不设定,init会提示用户输入
  2. 运行系统初始化脚本 /etc/rc.d/rc.sysinit
    2.1 激活udev和selinux;
    2.2 根据/etc/sysctl.conf设定内核参数;
    2.3 设定时钟时间;
    2.4 装载键盘映射;
    2.5 启用交换分区;
    2.6 设置主机名;
    2.7 根文件系统检测,并以读写方式重新挂载;
    2.8 激活RAID和LVM设备;
    2.9 启用磁盘配额;
    2.10 根据/etc/fstab,检查并挂载其它文件系统;
    2.11 清理过期的锁和PID文件;
  3. 调用/etc/rc.d/rc N, 运行/etc/rcN.d目录下的脚本
  4. 设定Ctrl+Alt+Del组合键的操作
  5. 定义UPS相关操作
  6. 2345级别下创建虚拟终端
  7. 5级别下启动xdm图形终端

III. /etc/rc.d/rc脚本

  1. 该脚本会到运行级别对应的目录中先遍历执行K开头的脚本,然后再遍历执行S开头的脚本;
    这些脚本都链接到/etc/init.d/目录下的服务脚本,而/etc/init.d目录又链接到/etc/rc.d/init.d, 关系如下图:
    这里写图片描述

  2. 由上可知,想在某个级别下开机启动某个服务,只需要在对应的目录下创建相应的链接即可; 手动创建的话可能比较麻烦,于是就有了自动添加链接的程序chkconfig。chkconfig可以自动根据服务脚本在/etc/rc#.d目录下创建链接文件,但要求服务脚本含有以下两条指令:
    2.1 # chkconfig:runlevels SS KK: 表示在runlevels对应的脚本目录下创建优先级为SS的链接,-表示不创建S开头的链接; 在其余的runlevels对应的脚本目录下创建优先级为KK的链接;
    2.2 # description: 脚本功能的描述;

  3. chkconfig常用选项
    --list [service]:显示系统所有服务[指定服务]及其开启状态;
    --add service: 添加服务到chkconfig列表中,创建相应的链接文件;
    --del service: 从chkconfig列表删除服务,并删除相应的链接文件;
    --level [levels] service {off|on}: 修改服务运行级别,如不指定levels,默认为2345;

特别鸣谢: www.magedu.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值