systemd新特征与使用介绍

写在前面:

博客书写牢记5W1H法则:What,Why,When,Where,Who,How。



本篇主要内容:

● Systemd新特征

● Systemd核心概念:unit

   unit常见类型

   systemd关键特征

   管理target units

   unit文件格式

● systemd配置文件读取顺序

   开机流程

   开机自启脚本配置



Systemd新特征:

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

按需激活进程;

系统状态快照;

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

核心概念:unit

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

这些配置文件主要保存在:

/usr/lib/systemd/system

/run/systemd/system

/etc/systemd/system

unit常见类型:

Service unit:文件扩展名为.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的命令是固定不变的;不像service启动的服务脚本一样可以直接修改/etc/rc.d/rc.sysinit目录中脚本文件,自定义脚本命令。

非由systemd启动的服务,systemctl无法与之通信;不支持自定义程序交给systemd管理。

管理系统服务:

即借助.service类型的unit文件管理服务。

systemctl

Control the systemd system and service manager

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

服务状态修改与状态查询:

systemctl start|stop|restart|status|try-restart|reload-restart|reload-or-try-restart NAME.service

服务当前激活状态:

systemctl is-active NAME.service

列出所有激活状态的服务:

systemctl list-units --type service

列出所有服务(已激活及未激活):

systemctl list-units -t service all

设置/取消/查看开机自启:

systemctl enable|disable|is-enable NAME.service

(无非就是在/etc/systemd/system/xx.target.wants/目录中建立或删除服务链接而已)

禁止/不禁止设置为开机自启:

systemctl mask|unmask NAME.service

查看服务依赖关系:

systemctl list-dependencies NAME.service

管理target units:

运行级别对照:

0 --> runlevel0.target, poweroff.target

1 --> runlevel1.target, rescue.target

2|3|4 --> runlevel2|3|4.target, multi-user.target

5 --> runlevel5.target, graphical.target

6 --> runlevel6.target, reboot.target

切换运行级别:

systemctl isolate NAME.target

查看运行级别:

systemctl list-units --type target

查看所有运行级别:

systemctl list-units -t target -a

获取/设置默认运行级别:

systemctl get-default NAME.target

systemctl set-default NAME.target

切换至紧急救援模式:

systemctl rescue

切换至emergency模式:

systemctl emergency

其他常用命令 :

systemctl halt|poweroff|reboot

systemctl suspend 挂起

systemctl hibernate 快照

systemctl hubrid-sleep

unit文件格式:

unit文件通常是由3部分组成的:

[Unit]

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

[Service]

与特定类型相关的专用选项,此处为service类型。

[Install]

定义由"systemctl enable|disable"命令在实现服务启动或禁用时用到的一些选项。

Unit段常用选项:

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

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

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

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

Conflicts:定义units间的冲突关系

Service段的常用选项:

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

类型:

simple:

forking:

oneshot:

dbus:

notify:

idle:

EnvironmentFile:环境配置文件;

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

ExecStop:指明停止unit要运行的命令或脚本;

Restart:

Install段的常用选项:

Alias:

RequiredBy:被哪些units所依赖;

WantedBy:被哪些units所依赖;

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

# systemctl  daemon-reload

systemd方式配置文件读取顺序:

(1)systemd启动后首先读取/etc/systemd/system/default.target文件,取得默认启动级别

(2)/etc/systemd/system/xx.target.wants/ 用户设定加载的unit

/usr/lib/systemd/system/xx.target.wants/ 系统默认加载的unit

(3)/usr/lib/systemd/system/xx.target根据文件内的定义,获取到启动xx.target需要依赖的其他服务。然后通过其他服务的对应文件,查找其他服务依赖的下一级服务,直到全部启动。(使用systemctl list-dependencies xx.target查看)

systemd开机流程大概是这样:

(通过观察systemctl list-dependencies xx.target总结得到)

a. local-fs.target + swap.target:这两个target主要在挂载本机/etc/fstab里面所规范的文件系统与相关的内存置换空间。

b. sysinit.target:这个target主要在侦测硬件,加载所需要的核心模块等动作。

c. basic.target:加载主要的外围硬件驱动程序与防火墙相关任务。

d. muli-user-target:底下的其它一般系统或网络服务加载。

e. 图形界面相关服务。如gdm.service等 相关服务的加载。

systemd下的自启动脚本配置:

默认情况下使用systemd的centos7系统上的/etc/rc.d/rc.local文件是没有执行权限的,所以,如果需要使用兼容老版本的方式继续依靠rc.local文件开机启动某程序或脚本,需要先赋予rc.local文件x权限。

systemd更建议用户在/etc/systemd/system/目录中创建启动脚本配置文件(unit文件),然后还用systemctl命令来管理开机启动。

时间: 2024-10-11 23:28:36

systemd新特征与使用介绍的相关文章

iOS6新特征:UICollectionView介绍

http://blog.csdn.net/eqera/article/details/8134986 1.1. Collection View 全家福: UICollectionView, UITableView, NSCollectionView n   不直接等效于NSCollectionView n   也不替代UITableView----亲兄弟 为什么要使用Collection Views呢? n  可以高度定制内容的展现 n  管理数据最佳的做法 n  即使是处理大量数据,也非常的高

HTML5表单新特征简介与举例

一.前言一撇 其实关于HTML5的表单特征早在去年你必须知道的28个HTML5特征.窍门和技术一文中就有所介绍(在第十一项),不过,有些遗憾的是,此部分的介绍是以视频形式展示的,其实,是视频还好啦,关键是TouTuBe视频,需要越狱观看.得,像我这样安分守已的良民,除了看空姐,其他情况都是懒得fan墙的,所以这部分视频展示的内容,其实就是个空. 所以,这里打个补丁,把这部分内容完善下.本文的大致内容有: # input type=number / # input type=range / # i

Java多线程-新特征-阻塞队列ArrayBlockingQueue

阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口java.util.concurrent.BlockingQueue,阻塞队列的概念是,一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止.同样,当队列为空时候,请求队列元素的操作同样会阻塞等待,直到有可用元素为止. 有了这样的功能,就为多线程的排队等候的模型实现开辟了便捷通道,非常有用. java.util.concurrent.BlockingQueue继承了java.util.Queue接口,可

ios新特征 ARC详解

IOS ARC 分类: IOS ARC2013-01-17 09:16 2069人阅读 评论(0) 收藏 举报 目录(?)[+] 关闭工程的ARC(Automatic Reference Counting) 顺带附上ARC教程 本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论.请不要将本文的部分或全部内容用于商用,谢谢合作. 欢迎转载本文,但是转载请注明本文出处:http://www.onevcat.com/2012/06/arc-hand-by

Java线程:新特征-有返回值的线程

http://lavasoft.blog.51cto.com/62575/222082/ 2009-11-04 17:33:56 标签:返回值 职场 线程 休闲 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lavasoft.blog.51cto.com/62575/222082 Java线程:新特征-有返回值的线程 在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写.或者干脆绕过这道坎,

golang 1.3的新特征和目前进度

原文: 计划中的新特征:http://golang.org/s/go13todo 目前的进展情况:http://talks.golang.org/2014/go1.3.slide golang 1.3代码将在3.1冻结,6.1发布. 1.100% percise GC GC是垃圾回收器,percise GC不知道什么意思,应该是能够提升性能吧 2.copying stack 使用copy stack代替原来的split stack,解决所谓的"hot split"问题. 3.一系列的性

【翻译】安卓新播放器EXOplayer介绍

http://developer.android.com/guide/topics/media/exoplayer.html ? 前言: Playing videos and music is a popular activity on Android devices. The Android framework provides?MediaPlayer?as a quick solution for playing media with minimal code, and the?MediaC

openldap-2.4新主从配置详细介绍(1)

openldap-2.4版本主从配置 PS:最近在搞ldap,当正在进行主从配置的时候,发现装的2.4.23版本的竟然没有slurpd这个守护进程的开启命令.然后上网搜了一下,原来2.4版本以后对主从.主主等模式做了大的改进.然后翻看官方的文档,将这些记录了下来.当然此文带有严重的本人理解色彩,所以如果出错,请见谅!能指出最好. OpenLdap v2.3之前的同步复制缺点: slurpd守护进程是以推模式操作 : 主服务器推送变更的数据到从服务器  (不可靠) 对replog中的记录的次序极为

灵玖软件:大数据语言新特征发现

信息的基本单位是句子,一个句子可以较表达完整连贯的易于理解的语义.句子中起主要作用的往往是关键词.词组或短语,而句子中的其他成分只是起到进一步修饰连接的作用,它们只是对基本信息的细化和补充.一旦获取了这些有意义的关键信息,便能获取句子的基本信息.因此,新特征语言和有意义串发现对中文自然语言理解是很有意义的.发现频繁使用的新词和短语等有意义串不仅能改进分词准确率,也有着其他广泛的应用前景.其应用领域主要如下几个方面: 首先,是对信息检索索引词的分析.例如,"计算技术研究所"是一个完整的查