• centos8使用systemctl管理运行级别


    一,什么是systemd的target?

    1,关于systemd/systemctl的相关知识,请移步到这一篇

    https://www.cnblogs.com/architectforest/p/12678142.html

    2,Target 就是一个 Unit 组,包含许多相关的 Unit 

    启动某个 Target 的时候,Systemd 就会启动里面所有的 Unit

    可以理解成init的runlevel

    3,systemd类似运行级别的target有哪些?

    poweroff.target (相当于runlevel 0)      关闭电源
    rescue.target (相当于runlevel 1)        急救
    multi-user.target  (相当于runlevel 3)   多用户命令行
    graphical.target(相当于runlevel 5)      图形界面
    reboot.target(相当于runlevel 6)         重启

    说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

             对应的源码可以访问这里获取: https://github.com/liuhongdi/

     说明:作者:刘宏缔 邮箱: 371125307@qq.com

    二,target相关的目录

    1,默认的 RunLevel,位置是 /etc/systemd/system/default.target

    它是一个符号链接,链接会链接到graphical.target(图形界面)或者multi-user.target(多用户命令行)

    2,当设置一个unit为开机自启动时,可以看到:

       是为它创建符号链接到当前的target的对应目录下:

        例如: /etc/systemd/system/multi-user.target.wants

    例子:

    [root@blog ~]# systemctl enable mysqld.service
    Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.

    例子:查看multi-user.target下自动启动的服务:

    [root@blog ~]# ll /etc/systemd/system/multi-user.target.wants 

    默认的 RunLevel(在 /etc/inittab 文件设置)现在被默认的 Target 取代,

    位置是 /etc/systemd/system/default.target,

    通常符号链接到graphical.target(图形界面)或者multi-user.target(多用户命令行)

    例子:

    [root@blog ~]# ll /etc/systemd/system/default.target
    lrwxrwxrwx. 1 root root 37 Dec 25 11:33 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target

    三,查看默认的运行级别

    [root@blog ~]$ systemctl get-default
    multi-user.target

    在另外一台图形界面的centos上查看

    [root@centos8 ~]$ systemctl get-default
    graphical.target

    四,不重启机器而切换当前的运行级别

    #isolate 用于切换当前的运行级别

    #切换到multi-user.target(命令行界面)

    [root@centos8 ~]$ systemctl isolate multi-user.target

    #切换到graphical.target(图形界面)

    [root@centos8 ~]$ systemctl isolate graphical.target

    五,查看当前的运行级别:

    1,切换到命令行界面

    [root@centos8 liuhongdi]# systemctl isolate multi-user.target 

    2,用runlevel查看当前的运行级别:

    [root@centos8 liuhongdi]# runlevel
    5 3

    说明:5是前一个运行级别

             3是当前的运行级别

    3,也可以用who -r命令

    [root@centos8 liuhongdi]# who -r
    run-level 3 2020-04-07 16:44 last=5

    run-level 是当前的运行级别

    last是上一个运行级别

    六,修改默认的运行级别target

    1,修改默认的运行级别:

    #set-default  用来指定默认的运行级别

    [root@centos8 ~]# systemctl set-default multi-user.target 
    Removed /etc/systemd/system/default.target.
    Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.

    说明:我们可以看到:set-default 所做的操作:

    把/usr/lib/systemd/system/multi-user.target创建符号链接到/etc/systemd/system/default.target

    2,查看修改是否成功:

    [root@centos8 ~]# systemctl get-default 
    multi-user.target

    3,修改成功后重启可以看到效果

    七,查看一个运行级别下面所有的unit

    1,

    # list-dependencies: 分析指定target各unit之间的依赖关系,如果不指明target,则表示是默认的target

    [root@blog ~]# systemctl list-dependencies multi-user.target
    multi-user.target
    ● ├─aegis.service
    ● ├─aliyun.service
    ● ├─atd.service
    ● ├─auditd.service
    ● ├─chronyd.service
    ● ├─crond.service
    ● ├─dbus.service
    ● ├─dnf-makecache.timer
    ● ├─ecs_mq.service
    ● ├─irqbalance.service
    ● ├─libstoragemgmt.service
    ● ├─mcelog.service
    ● ├─mdmonitor.service 

    说明: 各个service前的黑色圆点,如果是绿色,表示正在运行中,active

    如果是黑色,表示是inactive

    2,查看哪些target引用了当前运行级别的target

    #--reverse

    [root@blog ~]# systemctl list-dependencies multi-user.target --reverse
    multi-user.target
    ● └─graphical.target

    multi-user.target被graphical.target所引用

    八,systemctl与关机/重启相关的命令

    1,关闭cpu,但未关闭电源

    [root@blog ~]# systemctl halt

    2,关闭电源

    [root@blog ~]# systemctl poweroff

      建议使用这个,这个会真正关闭电源

    3,重启机器

    [root@blog ~]# systemctl reboot

    九,列出系统中包含的所有target

    [root@blog ~]# systemctl list-unit-files --type=target 

    十,查看centos的版本

    [root@blog ~]$ cat /etc/redhat-release
    CentOS Linux release 8.0.1905 (Core) 
  • 相关阅读:
    BLAS, LAPACK, OpenBLAS, MKL, CBLAS等概念
    Flex +WebService
    JS获取Url参数的通用方法
    错误 1 无法嵌入互操作类型“Microsoft.Office.Interop.Excel.ApplicationClass”。请改用适用的接口
    asp.net网站中添加百度地图功能
    Asp.net最基本的文件上传功能代码
    牛 JQuery视频笔记
    .Net知识点总结(一)
    javascript删除数组中的某个元素-----拓展Array 原型方法
    JavaScript中this
  • 原文地址:https://www.cnblogs.com/architectforest/p/12678245.html
Copyright © 2020-2023  润新知