Linux runlevel运行级别
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
- 运行级别2:多用户状态(无NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登录后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
- S,s Single user mode
运行级别的原理
-
在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(Service)
ls /etc/rc.d/init.d/ functions multi-queue-hw netconsole network README
-
在/etc/rc.d/下有7个名为rcN.d的目录,对应系统的7个运行级别
ls /etc/rc.d init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local
-
rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字
tree /etc/rc.d/rc0.d /etc/rc.d/rc0.d/ ├── K50multi-queue-hw -> ../init.d/multi-queue-hw ├── K50netconsole -> ../init.d/netconsole └── K90network -> ../init.d/network tree /etc/rc.d/rc3.d /etc/rc.d/rc3.d/ ├── K50netconsole -> ../init.d/netconsole ├── K90network -> ../init.d/network └── S50multi-queue-hw -> ../init.d/multi-queue-hw
-
系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件
- 对于K开头的文件,系统将终止对应的服务
- 对于S开头的文件,系统将启动对应的服务
-
查看运行级别用:runlevel
runlevel N 3 #前面表示前一次的等级 后面表示当前等级
-
进入其他运行级别使用: init N
init 0 #关机 init 1 #单用户 init 2 #无网络的多用户 init 3 #命令行模式 init 4 #未用 init 5 #GUI(图形桌面) init 6 #重启
在运行模式中加入启动服务
要在某个运行模式中加入一个启动服务,首先要新建该服务启动脚本,然后把它放置于/etc/rc.d/init.d或者/etc/init.d/,要将该启动脚本与运行模式关联起来,你需要这个运行模式的目录下建立一个与/etc/rc.d/init.d/下启动脚本的symbolic link,文件名的前缀通常为Snn,nn为数字,这个数字是用来控制该运行模式下服务的启动顺序的
脚本的执行顺序是按照数字大小升序执行,数字越小越先执行
例子
cp myservice /etc/rc.d/init.d/
ln -s /etc/rc.d/init.d/myservice /etc/rc3.d/S99myservice
#下次runlevel 3启动,myservice也会启动