Linux服务开机自启原理

说明:

在Linux下安装后某个软件后,经常需要调用命令 chkconfig –level 35 mysqld on 设置自启动,当机器重启后服务也自动重启,带来了极大的方便,这背后的原理啥?

运行等级:

Linux分了7个运行等级,分别用数字0,1,2,3,4,5,6标志,每个运行等级支持的功能不一样
  • 0: 关机 (init 0 关机)
  • 1:单用户模式 (一个场景:管理员在配置系统的时候,不希望有人登录)
  • 2:无网络连接的多用户命令行模式
  • 3: 有网络连接的多用户命令行模式
  • 4:不可用
  • 5:带图形界面的多用户模式 (一般安装默认的运行级别, 可以编辑 /etc/inittab来修改默认运行级别)
  • 6: 重新启动 (init 6==reboot)
运行级别原理:
  • 1.在/etc/rc.d/init.d 有很多服务程序脚本(支持start,retart,stop操作的shell脚本)
  • 2.在/etc/rc.d有7个rcN.d目录,对应7个运行级别
  • 3.rcN.d目录下都是一些符号链接,都链接到init.d目录的服务脚本,命名规则为K+两位数字+服务名或者S+两位数字+服务名
  • 4.查看运行级别:runlevel
  • 5.系统启动后更加运行级别进入到对应的rcN.d目录,遍历对应的链接文件:

    K+两位数字+服务名: 标识要关闭的服务
    S+两位数字+服务名: 标识要开启服务器

  • 6.init 0 关机,init 6 重启

举个栗子:

chkconfig –level 35 mysqld on

  • 首先在/etc/rc.d/init.d 目录下有个mysqld脚本控制着msql的启动和关闭

执行命令后:

  • /etc/rc.d/rc3.d 和/etc/rc.d/rc5.d目录下会生成一个新的链接文件 S34mysqld 链接到/etc/rc.d/init.d/mysqld文件
  • 当系统重启后更加运行级别到找到对应目录 执行 S34mysqld start 命令,服务自启

  • chkconfig mysqld on 在所有运行级别下都开启自启

  • chkconfig –list msyqld 查看服务在运行级别的下的自动状态,开启还是关闭
  • chkconfig –del mysqld 删除mysqld自启功能

你可能感兴趣的:(Linux服务开机自启原理)