Xinu

Linux运行级别与开机启动服务
Linux系统有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常...
扫描右侧二维码阅读全文
03
2019/06

Linux运行级别与开机启动服务

Linux系统有7个运行级别(runlevel)

运行级别0:

系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:

单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:

多用户状态(没有NFS)

运行级别3(服务器默认的运行级别):

完全的多用户状态(有NFS),登陆后进入控制台命令行模式

运行级别4:

系统未使用,保留

运行级别5:

X11控制台,登陆后进入图形GUI模式

运行级别6:

系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

运行级别的原理:

  1. 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
  2. 在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
  3. rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
  4. 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件
    对于以K开头的文件,系统将终止对应的服务

对于以S开头的文件,系统将启动对应的服务

  1. 查看运行级别用:runlevel
  2. 进入其它运行级别用:init N
  3. 另外init0为关机,init 6为重启系统

默认启动级别修改

由于现在的Linux系统安装完后就运行在第5个级别,即系统启动后直接进入图形界面,而不用在字符模式下登录后用startx或者xinit 来起动图形界面。建议在系统安装完成后把系统的默认运行等级设置在第3级,在字符终端登录后,再手工输入startx 命令起动图形界面。可以用如下的方法修改:
用文本编辑器修改 /etc/inittab文件,把
代码:
id:5:initdefault:这一行,修改成
代码:
id:3:initdefault:保存后就reboot重起,系统就默认起动到字符界面。
不同运行级别之间的差别的在于系统默认起动的服务的不同,如运行级别3默认不启动X图形界面服务,而运行级别5却默认起动。本质上是没有区别的,更无所谓不同级别间功能强弱的问题。用户完全可自给定义不同级别的默认服务。在任何运行级别,用户都可用init 命令来切换到其他运行级别。

服务启动脚本的启动级别设置

在编写service脚本的时候,有如下所示注释

# chkconfig: - 98 02

其中 - 代表启动级别,默认为2345

# chkconfig: 345 65 65
# httpd默认启动模式

98代表启动优先级
02代表停止优先级
范围都是0-100
还有# description: 和 # processname:等注释也需要描述

通过chkconfig管理自启动服务


chkconfig --list             #列出所有的系统服务。
chkconfig --add httpd        #增加httpd服务。
chkconfig --del httpd        #删除httpd服务。
chkconfig --level httpd 2345 on        # 设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
chkconfig --list               # 列出系统所有的服务启动情况。
chkconfig --list mysqld        # 列出mysqld服务设置情况。
chkconfig --level 35 mysqld on # 设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭。
chkconfig mysqld on            # 设定mysqld在各等级为on,“各等级”包括2、3、4、5等级。
chkconfig –level redis 2345 on # 把redis在运行级别为2、3、4、5的情况下都是on(开启)的状态。

如何增加一个服务:

  1. 服务脚本必须存放在/etc/ini.d/目录下;
  2. chkconfig --add servicename在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
  3. chkconfig --level 35 mysqld on修改服务的默认启动等级。

或者

  1. 服务脚本必须存放在/etc/ini.d/目录下;
  2. 服务脚本有标准的chkconfig及description注释;
  3. 使用service servicename start启动。
Last modification:June 3rd, 2019 at 10:47 pm

Leave a Comment