Linux的运行级别
Linux一般会有7个运行级别
可由init N来切换,init 0为关机,init 6为重启系,具体级别属性如下:
0 - 停机
1 - 单用户模式
2 - 多用户,但是没有NFS ,不能使用网络
3 - 完全多用户模式
4 - 打酱油的,没有用到
5 - X11 图形化登录的多用户模式
6 - 重新启动 (如果将默认启动模式设置为6,Linux将会不断重启)
其中,控制文件是/etc/inittab ,组后一行的阿拉伯数字,就是对应的运行等级。有些等级没用,有些等级,是万万不能用的!!!
关于/etc/rc.d/init.d目录
通常,我们把服务的启动和停止脚本都放在在这个目录下, 比如mysqld,ftpd,samba,zabbix等。这些脚本必须能接受start,stop参数,还有其它可选项:reload,restart,force-reload。 另外,为了少打几个字,系统默认建了一个软链接/etc/init.d指向它。
关于/etc/rc.d/rcX.d目录
在Linux中,对每一个运行级别来说,可能需要启动的服务都不同。比如我有A,B,C,D四个应用服务,在level2,只需要运行A,B,C,在level3需要运行A,C,D,E。
正是这个原因,如果单靠一个/etc/rc.d/rc脚本来控制,那将变得很庞大难以维护。那为了维护方便,在/etc/rc.d子目录中建立一个对应的子目录。这些子目录的命名方法是rcX.d,其中的X就是代表运行级别的数字。比如说,运行级别3的全部命令脚本程序都保存在/etc/rc.d/rc3.d子目录中。(类似于crontab的daily、monthly等等)
这里要注意,rcX.d放的都只是符号链接,所有真正的启动脚本是放置在 /etc/rc.d/init.d下。当前目录对应的级别需要启动哪些程序,就为哪些启动脚本建立一个指向至 /etc/rc.d/init.d下对应文件的软链。
比如 S64mysqld 表示执行/etc/rc.d/init.d/mysqld start,以启动mysqld,启动顺序排在64(启动顺序按从小到大进行),刚刚还在疑惑的东西,现在就明白了!!!知识万岁!!!
注意:
在centos7中,/etc/inittab中并没有对应的‘id:3:initdefault:’参数,而是下面这种形式:
[root@VM-75-65 init.d]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3 ##multi-user.target,也就相当于等级3,多用户模式
# graphical.target: analogous to runlevel 5 ##graphical.target相当于等级五,图形化界面
#
# To view current default target, run:
# systemctl get-default ##查看默认的启动等级
#
# To set a default target, run:
# systemctl set-default TARGET.target ##设置对应的启动等级
[root@VM-75-65 CMDB]# systemctl get-default
multi-user.target
multi-user.target
通过文件提示的指令去获取和更改当前系统的启动级别!!!
以上,共勉!