在RHEL/CentOS 6中,使用SysV init和Upstart,通过预定义一组Runlevels(从0到6)表示不同的执行模式。

    1. [root@myhost app]# ll /etc/rc.d/
      1. total 4
        1. drwxr-xr-x. 2 root root 148 May 28 05:40 init.d
          1. -rwxr-xr-x. 1 root root 503 May 27 11:29 rc.local
            1. drwxr-xr-x. 2 root root 84 Jan 16 08:07 rc0.d
              1. drwxr-xr-x. 2 root root 84 Jan 16 08:07 rc1.d
                1. drwxr-xr-x. 2 root root 84 Jan 16 08:07 rc2.d
                  1. drwxr-xr-x. 2 root root 84 Jan 16 08:07 rc3.d
                    1. drwxr-xr-x. 2 root root 84 Jan 16 08:07 rc4.d
                      1. drwxr-xr-x. 2 root root 84 Jan 16 08:07 rc5.d
                        1. drwxr-xr-x. 2 root root 84 Jan 16 08:07 rc6.d
                      1.  

                      对于选定的一个Runlevel,执行该Runlevel关联的所有服务,对应/etc/rc.d/init.d/目录下的初始文件,从而定制Linux系统的启动过程。管理员可以通过service命令或chkconfig命令工具进行操作。

                      事实上,RHEL/CentOS 6中的Runlevels表示的是系统的一组状态。在RHEL/CentOS 7中,Runlevels的概念已经被systemd target替代,而/etc/rc.d/init.d/目录下的初始文件也已经被service units所替代。

                      systemd target是一种systemd unit,用以描述系统的一个状态或一个同步点(快照)。一个systemd target拥有一个以.target为后缀的unit配置文件,位于/usr/lib/systemd/system/路径下。一个systemd target往往只是一组相关的systemd units的集合,用以将Linux系统设置为某个状态,类似于CentOS 6的Runlevel。CentOS 6的Runlevels与CentOS 7的targets之间的对应关系如下:

                        1. Traditional runlevel New target name Symbolically linked to target
                            1. Runlevel 0 | runlevel0.target -> poweroff.target
                              1. Runlevel 1 | runlevel1.target -> rescue.target
                                1. Runlevel 2 | runlevel2.target -> multi-user.target
                                  1. Runlevel 3 | runlevel3.target -> multi-user.target
                                    1. Runlevel 4 | runlevel4.target -> multi-user.target
                                      1. Runlevel 5 | runlevel5.target -> graphical.target
                                        1. Runlevel 6 | runlevel6.target -> reboot.target
                                      1.  

                                      1. multi-user.target

                                      systemd有一个默认target,即multi-user.target,Linux系统启动后即处于该默认target的状态。

                                      Linux系统启动时,各个target之间的依赖关系如下图所示:

                                      查看multi-user.target的unit配置文件,执行命令systemctl cat multi-user.target:

                                        1. [Unit]
                                          1. Description=Multi-User System
                                            1. Documentation=man:systemd.special(7)
                                              1. Requires=basic.target
                                                1. Conflicts=rescue.service rescue.target
                                                  1. After=basic.target rescue.service rescue.target
                                                    1. AllowIsolate=yes
                                                  1.  

                                                  说明:其中Requires给出的basic.target是另一个target,Requires表示multi-user.target依赖于basic.target。
                                                             Conflicts给出的rescure.service rescue.target,表示multi-user.target与他们互斥,不能同时处于multi-user状态和rescue状态。
                                                             After表示multi-user.target在basic.target rescue.service rescue.target之后启动,如果有他们的话。显然,如果启动了 rescue.service rescue.target则表示进入rescue状态,则必然无法启动multi-user.target,从而就不可能进入multi-user状态了。

                                                  2. 常见的target相关的systemctl 操作

                                                  查看systemd的默认target:
                                                          systemctl get-default
                                                      查看systemd的所有可用targets:
                                                          systemctl list-unit-files --type=target
                                                      查看systemd的所有启动targets:
                                                          systemctl list-units --type=target
                                                      设置systemd的默认target:
                                                          systemctl set-default graphical.target

                                                  参考链接:

                                                  https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/system_administrators_guide/index#sect-Managing_Services_with_systemd-Targets

                                                  https://www.freedesktop.org/software/systemd/man/bootup.html#System%20Manager%20Bootup

                                                  https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units

                                                  [转帖]RHEL/CentOS 7的systemd target及其中的multi-user.target的更多相关文章

                                                  1. Linux Systemd——在RHEL/CentOS 7中启动/停止/重启服务

                                                    RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Li ...

                                                  2. CentOS 7 中 Systemd详解

                                                    一.systemd的由来 Linux一直以来采用init进程但是init有两个缺点: 1.启动时间长.Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程.(这也是CentOS5的主要特征 ...

                                                  3. 三十、CentOS 7之systemd

                                                    一.系统启动流程 POST --> bootloader  --> MBR工作 --> kernel(initramfs/initrd) --> ro rootfs --> ...

                                                  4. (转)RHEL/CentOS 6.x使用EPEL6与remi的yum源安装MySQL 5.5.x

                                                    PS:如果既想获得 RHEL 的高质量.高性能.高可靠性,又需要方便易用(关键是免费)的软件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for En ...

                                                  5. RHEL/CentOS 7最小化安装后需做的30件事情

                                                    导读 CentOS是一个工业标准的Linux发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

                                                  6. RHEL/CentOS/Fedora各种源(EPEL、Remi、RPMForge、RPMFusion)配置

                                                    最新文章:Virson’s Blog CentOS默认自带CentOS-Base.repo源,但官方源中去除了很多有版权争议的软件,而且安装的软件也不是最新的稳定版.Fedora自带的源中也找不到很多 ...

                                                  7. How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7

                                                    How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7 The problem Google developers s ...

                                                  8. Enable EPEL Repository for RHEL/CentOS 7.x/6.x/5.x

                                                    This howto guide shows you’ll how to enable EPEL repository under RHEL/CentOS 6/5 to install additio ...

                                                  9. Google Chrome 55 Released – Install on RHEL/CentOS 7/6 and Fedora 25-20

                                                    Google Chrome is a freeware web browser developed by Google Inc. Google Chrome team proudly announce ...

                                                  10. RHEL/CentOS 6.x 系统服务详解

                                                    PS:RHEL/CentOS 6.x的系统服务比5.x系列的要多了很多新面孔,估计很多童鞋不甚理解,网上这方面资料也很少.理解这个对运维人员是必要的,因为开启不必要的服务越 多,系统就相对越不安全.不 ...

                                                  随机推荐

                                                  1. Shell脚本实践总结

                                                    对比大小 符号用法:(必须使用双括号) < 小于     (( "$a" < "$b" ))  <= 小于等于   (( "$a&q ...

                                                  2. 【Python】【OpenCV】OCR识别(二)——透视变换

                                                    对于OCR技术在处理有角度有偏差的图像时是比较困难的,而水平的图像使用OCR识别准确度会高很多,因为文本通常是水平排列的,而OCR算法一般会假设文本是水平的. 针对上述情况,所以我们在处理有角度的图象 ...

                                                  3. 斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 01.基础AI与行为树

                                                    斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 前言&摘要 本篇文章是基于斯坦福UE4 C++课程的学习记录.因为B站用户surkea由于学业原因,暂停了课程 ...

                                                  4. 用GaussDB(for Redis)存画像,推荐业务轻松降本60%

                                                    摘要:用户画像存储是推荐业务核心,但开源Redis无法胜任.华为云高斯Redis是最佳存储选型,轻松降本60%,同时获得企业级高稳定性. 本文分享自华为云社区<华为云GaussDB(for Re ...

                                                  5. Spring 太肥、太慢?你受不了?那 Solon Java Framework 就是你的西施

                                                    Solon 是什么? Java 生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模).与其他框架相比,它解决了两个重要的痛点:启动慢,费内存.2023 ...

                                                  6. Kubernetes(K8S) Service 介绍

                                                    定义一组 Pod 的访问规则 存在的意义 防止 Pod 失联(服务发现),Pod 重启后,IP会变 定义一组 Pod 访问策略,负载均衡 Pod 和 Service 关系 根据 label 和 sel ...

                                                  7. JAVA CRC16

                                                    JAVA CRC16 /** * CRC-16 * * <table width="400px" border="1" cellpadding=" ...

                                                  8. C# 完美实现物联网 MQTT 数据通信

                                                    前言 MQTT 协议由于其用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务,具有开销低.占用带宽低.即时通讯等优点,使其在物联网.小型设备.移动应用等方面有较广泛的应用,在工业物联网中, ...

                                                  9. AtCoder Regular Contest 120 AB题

                                                    比赛链接:Here A - Max Add 观察一下发现每次输出与两点有关,前缀和和当前位置最大值 int main() { cin.tie(nullptr)->sync_with_stdio( ...

                                                  10. L1-018 大笨钟 (10分)

                                                    开始天梯赛专项训练 微博上有个自称"大笨钟V"的家伙,每天敲钟催促码农们爱惜身体早点睡觉.不过由于笨钟自己作息也不是很规律,所以敲钟并不定时.一般敲钟的点数是根据敲钟时间而定的,如 ...