Linux 运行级别

Posted 张雅宸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 运行级别相关的知识,希望对你有一定的参考价值。

本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/47

运行级别

不同运行级别的描述

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS,NFS就是网络文件系统)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

注意:ubuntu系统下,运行级别2-5提供的服务是一样的,即2-5级别没有差别,所以ubuntu系统下0表示关机,1表示维护模式,2-5表示GUI界面的系统,6表示重启系统。

修改默认的运行级别

如果想要修改默认的运行级别,修改/etc/inittab文件。( ubuntu系统默认没有/etc/inittab文件,在/etc/init/rc-sysinit.conf文件中指定了默认运行级别。)

id:3:initdefault:

将数字改为需要的运行级别即可。

不同运行级别之间的 差别的在于系统默认起动的服务的不同。例如运行级别1会关闭网络服务,运行级别3默认不启动X图形界面服务,而运行级别5却默认起动。

runlevel命令

[[email protected] ~]# runlevel
N 3

使用runlevel命令可以显示前次和当前的运行级别,中间使用空格符隔开,如果没有前次运行级别则显示N。例如,系统默认运行级别是2,且用户没有切换过运行级别,那么运行runlevel命令后,系统显示为N 2。如果当前运行级别为2,用户使用init 3切换到运行级别3,那么runlevel命令显示为2 3。

rcN.d目录和init.d目录

每个运行级别在/etc下都对应一个rcN.d目录,N的范围是0-6。系统启动时,根据默认的运行级别执行相应rcN.d目录下的服务。为了管理方便,该目录下所有的服务实际是软链接到/etc/init.d目录下相应的脚本文件。由init.d目录下的脚本文件完成服务的启动和关闭功能。
rcN.d目录下文件的格式为:[SK]NNname。S表示启动该服务,K表示关闭该服务;NN表示启动顺序号,最小的数字最先被启动,最大的数字最后被启动。name表示服务名称。

[[email protected] etc]# cd rc3.d/
[[email protected] rc3.d]# ls
K01smartd        K15httpd           K69rpcsvcgssd  K76ypbind          K89rdisc         S02lvm2-monitor  S12rsyslog     S23NetworkManager    S26acpid      S64mysqld     S90crond
K02oddjobd       K30spice-vdagentd  K73winbind     K84wpa_supplicant  K92pppoe-server  S08ip6tables     S13cpuspeed    S24nfslock           S26haldaemon  S80postfix    S95atd
K05wdaemon       K50dnsmasq         K74ntpd        K86cgred           K95firstboot     S08iptables      S13irqbalance  S24rpcgssd           S26udev-post  S82abrt-ccpp  S97rhnsd
K10psacct        K50kdump           K75cgconfig    K87restorecond     K95rdma          S10network       S13rpcbind     S25blk-availability  S28autofs     S82abrtd      S97rhsmcertd
K10saslauthd     K60nfs             K75ntpdate     K88sssd            K99rngd          S11auditd        S15mdmonitor   S25cups              S50bluetooth  S84php-fpm    S99certmonger
K15htcacheclean  K61nfs-rdma        K75quota_nld   K89netconsole      S01sysstat       S11portreserve   S22messagebus  S25netfs             S55sshd       S85nginx      S99local
[[email protected] rc0.d]# ll
total 0
lrwxrwxrwx. 1 root root 20 Apr  5 18:20 K01certmonger -> ../init.d/certmonger
lrwxrwxrwx. 1 root root 16 Apr  5 18:23 K01smartd -> ../init.d/smartd
lrwxrwxrwx. 1 root root 17 Apr  5 18:20 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx. 1 root root 19 Apr  5 18:20 K02rhsmcertd -> ../init.d/rhsmcertd
lrwxrwxrwx. 1 root root 15 Apr  5 18:19 K03rhnsd -> ../init.d/rhnsd
lrwxrwxrwx. 1 root root 13 Apr  5 18:20 K05atd -> ../init.d/atd
lrwxrwxrwx. 1 root root 17 Apr  5 18:25 K05wdaemon -> ../init.d/wdaemon

我们注意到,在运行级别为3的时候,nginx服务默认是启动的。

[[email protected] rc3.d]# ls | grep nginx
S85nginx

如果想要开机时不启动nginx,输入下列命令:

[[email protected] rc3.d]# chkconfig nginx off

则nginx服务开机时就不自动启动了。

[[email protected] rc3.d]# ls | grep nginx
K15nginx

chkconfig

用来更新(启动或停止)和查询系统服务的运行级信息

chkconfig [--list] [--type type][name]
chkconfig --add name
chkconfig --del name
chkconfig --override name
chkconfig [--level levels] [--type type] name <on|off|reset|resetpriorities>
chkconfig [--level levels] [--type type] name

具体用法见http://roclinux.cn/?p=51 或者 man chkconfig

参考资料:http://blog.csdn.net/luomoweilan/article/details/20290165








以上是关于Linux 运行级别的主要内容,如果未能解决你的问题,请参考以下文章

linux运行级别简介

linux运行级别简介

linux运行级别和开机流程

linux系统的运行级别

Linux:检查当前运行级别的五种方法

Linux系统有7个运行级别