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

/run/systemd/system

/etc/systemd/system

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:

Centos7:

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

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

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

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

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

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

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

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

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

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

管理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

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

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

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

切换至紧急救援模式: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

时间: 2024-10-10 00:42:11

Linux自学笔记——Centos7系统之systemd的相关文章

Linux自学笔记--基础命令date,cal等

逆水行舟,不进则退: date命令: 我们可以来man一下date命令,可以在上面看出 date的含义为 - print or set the system date and time,我们从以下几方面对date命令进行阐述. 1.   显示时间 date[OPTION]... [+FORMAT] format:格式符号 %D: %F: %T: 在屏幕中输入单独的date命令可以显示系统的时间: 同时我们也可以显示自己想要的时间显示格式: 2.   设置时间 date[-u|--utc|--un

Linux自学笔记(3):Linux系统基础入门

登录:root/manager startx & 终端:用户与主机交互必然用到设备: 物理终端:直接接入主机的显示器和设备: 虚拟终端:附加在物理设备上的软件方式实现的终端: 模拟终端:图形界面下的打开命令行接口,基于ssh协议或telnet协议等远程打开的界面: 交互式接口,启动终端后,在终端设备附加一个交互式程序:GUI:图形界面x protocol ,windows manager ,dasktop desktop GNONE (C,gtk) KDE(C++,pt) XFCE(轻量级桌面)

Linux自学笔记——linux进程及作业管理

内核的功用主要有进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能这几个方面,本文主要讨论linux进程及作业管理. 进程管理: 进程,process,运行中程序的一个副本,且存在生命周期: 进程分为CPU bound和I/Obound. CPU bound:CPU密集型(类似于高清视频) I/O bound:IO密集型(编辑器等频繁IO操作) Linux内核存储进程信息的固定格式为:task struct(结构体) 多个任务的task struct组件的链表:task list 进程创

Linux自学笔记——Centos启动流程

Centos启动流程大概为:POST --> Boot Sequence(BIOS)--> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs (readonly)-->switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --> 启动终端.

linux自学笔记——rpm程序包管理

RPM是Redhat PackageManager(RPM程序包管理器)的缩写,这一文件格式名称虽然打上了Redhat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux.Suse以及Turbo Linux的分发版本也都有采用.RPM程序包管理器可分为安装.升级.卸载.查询.校验等五种功能,以下我们将会对这五种功能的相应的用法一一说明. RPM程序包: 源代码:name-VERSION.tar.gz    源代码由RPM自动编译安装: VERSION: major.minor.rel

Linux自学笔记——用户和组管理

资源分派: Authentication:认证 Authorization:授权 Accouting:审计 Audition token,identity(username/password) linux用户:username/UID 管理员:root,0 普通用户:1-65535 系统用户:1-499,1-999 对守护进程获取资源进行权限分配: 登录用户:500+,1000+ 交互式登录: Linux组:groupname/GID 管理员组:root,0 普通组: 系统组:1-499, 1-

Linux自学笔记——keepalived

本文部分参考博客:http://blog.51cto.com/1992tao/1869869 一.        VRRP协议 1.      技术优点: VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性. VRRP具有如下优点: 1)      简化网络管理.在具有多播或广播能力的局域网(如以太网)中,借助VRRP能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,

Linux自学笔记——dhcp,tftp,pxe

DHCP:Dynamic Host Configuration Protocol IP/Nermask Gateway DNS Server bootp:boot protocol --> dhcp 1.      Client:dhcp discover:发现 2.      Server:dhcp offer:(IP/netmask,gw) 3.      Client:dhcp request 4.      Server:dhcp ack 续租: Client:dhcp request

Linux自学笔记——haproxy

HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠地一套解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单的安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接数.多进程或多线程模型受内存限制.系统