• 1.7 Systemd初始化进程
    • 为您推荐一些与本文相关的文章:

    1.7 Systemd初始化进程

    Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。红帽RHEL 7系统已经替换掉了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务。如果您之前学习的是RHEL 5或RHEL 6系统,可能会不习惯。systemd初始化进程服务采用了并发启动机制,开机速度得到了不小的提升。虽然systemd初始化进程服务具有很多新特性和优势,但目前还是下面4个槽点。

    槽点1:systemd初始化进程服务的开发人员Lennart Poettering就职于红帽公司,这让其他系统的粉丝很不爽。

    槽点2: systemd初始化进程服务仅仅可在Linux系统下运行,“抛弃”了UNIX系统用户。

    槽点3:systemd接管了诸如syslogd、udev、cgroup等服务的工作,不再甘心只做初始化进程服务。

    槽点4:使用systemd初始化进程服务后,RHEL 7系统变化太大,而相关的参考文档不多,令用户着实为难。

    无论怎样,RHEL 7系统选择systemd初始化进程服务已经是一个既定事实,因此也没有了“运行级别”这个概念,Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd用目标(target)代替了System V init中运行级别的概念,这两者的区别如表1-3所示。

    表1-3 systemd与System V init的区别以及作用

    System V init运行级别systemd目标名称作用
    0runlevel0.target, poweroff.target关机
    1runlevel1.target, rescue.target单用户模式
    2runlevel2.target, multi-user.target等同于级别3
    3runlevel3.target, multi-user.target多用户的文本界面
    4runlevel4.target, multi-user.target等同于级别3
    5runlevel5.target, graphical.target多用户的图形界面
    6runlevel6.target, reboot.target重启
    emergencyemergency.target紧急Shell

    如果想要将系统默认的运行目标修改为“多用户,无图形”模式,可直接用ln命令把多用户模式目标文件连接到/etc/systemd/system/目录:

    1. [root@linuxprobe ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

    如果有读者之前学习过RHEL 6系统,或者已经习惯使用service、chkconfig等命令来管理系统服务,那么现在就比较郁闷了,因为在RHEL 7系统中是使用systemctl命令来管理服务的。表1-4和表1-5所示RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比,您可以先大致了解一下,后续章节中会经常用到它们。

    表1-4 systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令

    System V init命令(RHEL 6系统)systemctl命令(RHEL 7系统)作用
    service foo startsystemctl start foo.service启动服务
    service foo restartsystemctl restart foo.service重启服务
    service foo stopsystemctl stop foo.service停止服务
    service foo reloadsystemctl reload foo.service重新加载配置文件(不终止服务)
    service foo statussystemctl status foo.service查看服务状态

    表1-5 systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

    System V init命令(RHEL 6系统)systemctl命令(RHEL 7系统)作用
    chkconfig foo onsystemctl enable foo.service开机自动启动
    chkconfig foo offsystemctl disable foo.service开机不自动启动
    chkconfig foosystemctl is-enabled foo.service查看特定服务是否为开机自启动
    chkconfig —listsystemctl list-unit-files —type=service查看各个级别下服务的启动与禁用情况

    出现问题?大胆提问!

    因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

    Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群。

    *本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

    本章节的复习作业(答案就在问题的下一行哦,用鼠标选中即可看到的~)

    1.为什么建议读者校验下载的系统镜像或工具?

    答:为了保证软件包的安全与完整性。

    2.使用虚拟机安装Linux系统时,为什么要先选择稍后安装操作系统,而不是去选择RHEL 7系统镜像光盘?

    答:在配置界面中若直接选择了RHEL 7系统镜像,则VMware Workstation虚拟机会使用内置的安装向导自动进行安装,最终安装出来的系统跟我们后续进行实验所需的系统环境会不一样。

    3.RPM(红帽软件包管理器)只有红帽企业系统在使用,对吗?

    答:RPM已经被CentOS、Fedora、openSUSE等众多Linux系统采用,它真的很好用!

    4.简述RPM与Yum软件仓库的作用。

    答:RPM是为了简化安装的复杂度,而Yum软件仓库是为了解决软件包之间的依赖关系。

    5.RHEL 7系统采用了systemd作为初始化进程,那么如何查看某个服务的运行状态?

    答:执行命令“systemctl status 服务名.service”可查看服务的运行状态,其中服务名后的.service可以省略。

    本文原创地址:https://www.linuxprobe.com/chapter-01.html   编辑:刘遄,审核员:暂无

    为您推荐一些与本文相关的文章:

    • Ubuntu 16.04 LTS 默认壁纸公布,多图预警
    • 锤子科技朱萧木转行做电子烟
    • Daydream 键盘来了
    • 通过 SSH 在远程运行Linux命令的方法
    • 数据中心需要注意的周边安全性问题
    • “不限量套餐”将停售!网友:变相涨价
    • 《C++性能优化指南》pdf电子书免费下载
    • 微软已签署Windows 10 Version 1809 RTM正式版了吗?
    • Android 7.0搭载Nougat新机
    • 《HTML5布局之路》pdf电子书免费下载

    转载必需保留本文链接:https://www.linuxprobe.com/chapter-01.html

    本文依据CC-BY-NC-SA 3.0协议发布,竭诚为读者提供Linux视频教程、Linux学习资料以及红帽考试资料等优质学习资源。