Linux 运行级别

时间:2023-03-09 06:59:42
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命令

[root@localhost ~]# 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表示服务名称。

[root@localhost etc]# cd rc3.d/
[root@localhost 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
[root@localhost 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服务默认是启动的。

[root@localhost rc3.d]# ls | grep nginx
S85nginx

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

[root@localhost rc3.d]# chkconfig nginx off

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

[root@localhost 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.****.net/luomoweilan/article/details/20290165