Linux自学笔记——Centos7系统之systemd

简介:

 

回顾:

centos系统的启动流程:POST àboot sequeue(BIOS)à bootloader(mbr) à kernel(ramdisk)àrootfs à/sbin/init

init

centos5:sysv init

      centos6:upstart

      centos7:systemd

system的新特性:

      系统引导时实现服务并行启动;

      按需激活进程;

      系统状态快照;

      基于依赖关系定义服务控制逻辑;

核心概念:unit

      unit由其相关配置文件进行标识、识别和配置;文件中主要包含了系统服务、监听的socket、保存的快照以及其他与init相关的信息;这些配置文件主要保存在:

      /usr/lib/systemd/system

      wKioL1nKFLzi3l2ZAAB6EgKffwI151.png-wh_50

      /run/systemd/system

      wKiom1nKFQCgUPQRAAAcHRMTxqI686.png-wh_50

      /etc/systemd/system

      wKiom1nKFQez9NMSAABfh7rOhyE875.png-wh_50

unit的常见类型:

      service init:文件扩展名为.service,用于定义系统服务;

      target unit:文件扩展名为.target,用于模拟实现“运行级别”;

      device unit:.device,用于定义内核识别的设备;

      mount unit:.mount,用于定义文件系统挂载点;

      socket unit:.socket,用于标识进程间通信用到的socket文件;

      snapshot unit:.snapshot,管理系统快照;

      swap unit:.swap,用于标识swap设备;

      automount unit :.automount,文件系统自动点设备;

      path unit:.path,用于定义文件系统中的文件或目录;

关键特性:

      基于socket的激活机制:socket与程序分离;

      基于bus的激活机制;

      基于device的激活机制;

      基于path的激活机制;

      系统快照:保存各unit的当前状态信息于持久存储设备中;

      向后兼容sysv init脚本;

           /etc/init.d

不兼容:

      Systemctl的命令时固定不变的;

      非由systemd启动的服务,systemctl无法与之通信;

管理系统服务:

Centos7:service类型的unit文件

systemctl命令:

      - Control the systemd system and servicemanager

      systemctl [OPTIONS...]  COMMAND  [NAME...]

           启动:service NAME start ==> systemctl startNAME.service

           停止:service NAME stop ==> systemctl stopNAME.service

           重启:service NAME restart ==> systemctlrestart NAME.service

           状态:service NAME status ==> systemctlstatus NAME.service

           Centos6

           wKioL1nKFNKDZNRTAABJJXlLn38736.png-wh_50

           Centos7

           wKiom1nKFRfyMWArAAFw-cjKLfs910.png-wh_50

           条件式重启:service  NAME condrestart  ==>  systemctl try-restart  NAME.service

           重载或重启服务:systemctl reload-or-restart  NAME.service

           重载或条件式重启服务:systemctl reload-or-try-restartNAME.service

 

           查看某服务当前激活与否的状态:systemctl is-activeNAME.service

           wKioL1nKFOLCXwflAAANccErXhs380.png-wh_50

           查看所有已激活的服务:systemctl list-units --typeservice

           wKioL1nKFOnSuJkXAACNvlDhuCo616.png-wh_50

           查看所有服务(已激活及未激活):chkconfig  --list ==> systemctl list-units -t service--all

           wKiom1nKFS7Q7QX7AACWwMFQTuM652.png-wh_50

 

           设置服务开机自启:chkconfig  NAME on ==> systemctl enable NAME.service

           禁止服务开机自启:chkconfig  NAME off ==> systemctl diable NAME.service

           查看某服务是否能开机自启:chkconfig –list NAME ==>systemctl is-enabled NAME.service

           wKiom1nKFTXwZg-PAABta4grNLM624.png-wh_50

          

           查看服务的依赖关系:systemctl list-dependenciesNAME.service

           wKioL1nKFQGDZlskAABPjZMfGX0002.png-wh_50

管理target units

      运行级别:

           0 ==> runlevel0.target,poweroff.target

           1 ==> runlevel1.target,rescue.target

           2 ==> runlevel2.target,multi-user.target

           3 ==> runlevel3.target,multi-user.target

           4 ==> runlevel4.target,multi-user.target

           5 ==> runlevel5.target,graphical.target

           7 ==> runlevel6.target,reboot.target

      级别切换:init N ==> systemctl isolate NAME.target

     

      查看级别:runlevel ==> systemctl list-units–type target

      wKiom1nKFUbwkB31AACnqByq4cE622.png-wh_50

      查看所有级别:systemctl list-units -t target –a

      wKiom1nKFU7ThJknAADpdRGtubk697.png-wh_50

      获取默认运行级别:systemctl get-default

      修改默认运行级别:systemctl set-default NAME.target

      wKioL1nKFRrif2V-AAAmExBqp90887.png-wh_50

      切换至紧急救援模式:systemctl rescue

      切换至emergency模式:systemctlemergency

 

其它常用命令:

      关机:systemctl halt,systemctlpoweroff

      重启:systemctl reboot

      挂起:systemctl suspend

      快照:systemctl hibernate

      快照并挂起:systemctl hybrid-sleep

 

Serviceunit file

      文件通常由三部分组成:

           [unit]:定义与unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等;

           [service]:与特定类型相关的专用选项;此处为service类型;

           [install]:定义由“systemctlenable”以及“systemctl disable”命令在实现服务启用或禁用时用到的一些选项

      Unit段的常用选项:

           Description:描述信息;意义性描述;

           After:定义unit的启动顺序;表示当前unit应该晚于哪些unit启动;其功能与before相反;

           Requires:依赖到的其它units;强依赖,被依赖的units无法激活时,当前的unit即无法激活;

           Wants:依赖到的其它units;弱依赖;

           Conflicts:定义units间的冲突关系;

      Service段的常用选项:

           Type:用于定义影响ExecStart及相关参数的功能的unit进程启动类型;

                 类型:

                      simple:默认值,这个daemon主要由Execstart接的指令串来启动,启动后长驻于内存中;

                      forking:由ExecStart启动的程序透过spawns延伸出其他子程序来作为此daemon的主要服务。

                      oneshot:与simple类似,不过这个程序在工作完毕后就结束了,不会常驻于内存之中;

dbus:与simple 类似,但这个damon必须要在取得一个D-bus的名称后,才会继续运作,因此通常也要同时设定BusNname才行

                      notify

                      idle

           EnvironmentFile:环境配置文件;

           ExecStart:指明启动unit要运行的命令或脚本;ExeStartPre,ExecStartPost

           Restart

      Install段的常用选项:

           Alias:别名可使用systemctl command alias.service

           RequiedBy:被哪些units所依赖;

           WantedBy:被哪些units所依赖;

Note:对于新创建的unit文件或修改了的unit文件,要通知systemd重载配置文件;

      #systemctl daemon-reload

 


本文转自 claude_liu 51CTO博客,原文链接:http://blog.51cto.com/claude666/1968905,如需转载请自行联系原作者

相关文章
|
11天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
47 3
|
11天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
36 2
|
5天前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
13 3
|
11天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
43 3
|
14天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
34 6
|
Linux
百度搜索:蓝易云 ,Centos7系统wget 的安装与使用详细教程。
以上是在CentOS 7系统上安装和使用wget的详细教程。确保按照步骤操作,并根据您的需求进行必要的修改和调整。
183 0
|
关系型数据库 MySQL Linux
百度搜索:蓝易云【Centos7系统如何安装MySQL5.7数据库?】
安装 MySQL 5.7 数据库需要进行以下步骤:
120 0
|
6月前
|
关系型数据库 Linux Shell
Centos系统上安装PostgreSQL和常用PostgreSQL功能
Centos系统上安装PostgreSQL和常用PostgreSQL功能
|
Shell Linux Python
centos7系统 shell脚本安装python3 各版本
centos7系统 shell脚本安装python3 各版本
275 0
|
负载均衡 应用服务中间件 Linux
百度搜索:蓝易云【Centos7系统Nginx负载均衡如何安装和配置?】
在本文中,我们将介绍如何在CentOS 7系统中安装和配置Nginx负载均衡。本教程适用于初学者和经验丰富的用户。
171 0
下一篇
无影云桌面