一、systemd

1、systemd简介

1️⃣:systemd是用户空间的第一个应用程序,即/sbin/init

2️⃣:init程序的类型:

  • SysV风格:init(centos5),实现系统初始化时,随后的初始化操作都是借助于脚本来实现的

    • 特点:

      • 脚本中含有大量的命令,每个命令都要启动一个进程,命令执行完以后就要终止这个进程。
      • 系统初始化时将大量的创建进程,销毁进程,工作效率会非常低
      • 服务间可能会存在依赖关系,必须严格按照一定的顺序来启动服务,前一个服务没启动完后面的服务就无法执行启动过程。不能并行进行
    • 配置文件:/etc/inittab
  • Upstart风格:init(centos6),由ubuntu研发的,通过总线形式以接近于并行的方式工作,效率比SysV高
    • 特点:

      • 基于总线方式能够让进程间互相通信的一个应用程序
      • 不用等服务启动完成,只要一初始化就可以把自己的状态返回给其他进程
    • 配置文件:/etc/inittab,/etc/init/*.conf
  • Systemd风格:systemd(centos7)
    • 特点:启动速度比SysV和Upstart都快

      • 需要通过任何脚本来启动服务,systemd自身就可以启动服务,其本身就是一个强大的解释器,启动服务时不需要sh/bash的参与
      • systemd不真正在系统初始化时去启动任何一个服务
        • 只要服务没用到,它告诉你启动了,实际上并没有启动。仅当第一次去访问时才会真正启动服务
    • 配置文件:/usr/lib/systemd/system,/etc/systemd/system

3️⃣:其他参数

  • 系统启动和服务器进程由systemd系统和服务管理器进行管理
  • 守护进程是在执行各种任务的后台等待或运行的进程
  • 为了侦听连接,守护进程使用套接字。套接字可以由守护进程创建,或者与守护进程分离,并且可能由另一个进程创建(如systemd),随后在客户端建立连接时将套接字传递到守护进程
  • 服务通常指的是一个或多个守护进程,但启动或停止一项服务可能会对系统的状态进行一次性更改(如配置网络接口),不会留下守护进程之后继续运行

2、systemd新特性

  • 系统引导时实现服务并行启动
  • 按需激活进程
  • 系统状态快照
  • 基于依赖关系定义服务控制逻辑

3、systemd核心概念Unit

1️⃣:systemd使用unit的概念来管理服务,这些unit表现为一个个配置文件

2️⃣:systemd通过对这些配置文件进行标识和配置达到管理服务的目的

//这些unit文件中主要包含了系统服务、监听socket、保存的系统快照
//及其它与init相关的信息保存至以下目录:
/usr/lib/systemd/system
/run/systemd/system
/etc/systemd/system  

3️⃣:Unit类型

Service unit    //文件扩展名为.service,用于定义系统服务
Target unit //文件扩展名为.target,用于模拟实现“运行级别”
runlevel0.target和poweroff.target //关机
runlevel1.target和rescue.target //单用户模式
runlevel2.target和multi-user.target //对于systemd来说,2/3/4级别没有区别
runlevel3.target和multi-user.target //对于systemd来说,2/3/4级别没有区别
runlevel4.target和multi-user.target //对于systemd来说,2/3/4级别没有区别
runlevel5.target和graphical.target //图形级别
runlevel6.target和reboot.target //重启
Device unit //文件扩展名为.device,用于定义内核识别的设备
Mount unit //文件扩展名为.mount,用于定义文件系统挂载点
Socket unit //文件扩展名为.socket,用于标识进程间通信用的socket文件
Snapshot unit //文件扩展名为.snapshot,用于管理系统快照
Swap unit //文件扩展名为.swap,用于标识swap设备
Automount unit //文件扩展名为.automount,用于实现文件系统的自动挂载点
Path unit //文件扩展名为.path,用于定义文件系统中的一个文件或目录  

4️⃣:Unit关键特性

//基于socket的激活机制:
socket与服务程序分离,当有人去访问时才会真正启动服务,以此来实现按需激活进程与服务的并行启动
//基于bus的激活机制:
所有使用dbus实现进程间通信的服务,可以在第一次被访问时按需激活
//基于device的激活机制:
支持基于device激活的系统服务,可以在特定类型的硬件接入到系统中时,按需激活其所需要用到的服务
//基于path的激活机制:
某个文件路径变得可用,或里面出现新文件时就激活某服务
//系统快照:
保存各unit的当前状态信息于持久存储设备中,必要时能自动载入
//向后兼容sysv init脚本  

5️⃣:不兼容特性

//systemctl命令固定不变
//非由systemd启动的服务,systemctl无法与之通信
//只有已经启动的服务在级别切换时才会执行stop,在centos6以前是所有S开头的服务全部start,所有K开头的服务全部stop
//系统服务不会读取任何来自标准输入的数据流
//每个服务的unit操作均受5分钟超时时间限制

二、使用systemctl管理服务

//语法:systemctl COMMAND name[.service|.target]
//常用COMMAND:
start name.service //启动服务
stop name.service //停止服务
restart name.service //重启服务
status name.service //查看服务状态
try-restart name.service //条件式重启服务,若服务已经启动则重启,若服务未启动则不做任何操作
reload-or-restart name.service //重载或重启服务,能reload则reload,否则restart
reload-or-try-restart name.service //重载或条件式重启服务,能reload则reload,否则try-restart
mask name.service //禁止设定为开机自启
unmask name.service //取消禁止设定为开机自启
list-dependencies name.service //查看服务的依赖关系
is-active name.service //查看某服务当前激活与否的状态
is-enabled name.service //查看服务是否开机自动启动
enable name.service //设定某服务开机自动启动
disable name.service //禁止服务开机自动启动
isolate name.target //切换至某级别,如systemctl isolate graphical.target就是切换至图形界面
list-unit-files --type service //查看所有服务的开机自动启动状态(是否开机自启)
list-units --type service //查看所有已经激活的服务状态信息
list-units --type target //查看所有已装载的级别
list-units --type service --all //查看所有服务(已启动/已停止)的状态信息
list-units --type target --all //查看所有的级别
get-default //查看默认运行级别
set-default name.target //设置默认运行级别
rescue //切换至紧急救援模式(大多数服务不启动,但是会加载驱动)
emergency //切换至emergency模式(驱动不会加载,系统不会初始化,服务不会启动)
halt //关机
poweroff //关机
reboot //重启
suspend //挂起系统,此时不能关机,否则无用
hibernate //创建并保存系统快照,下次系统重启时会自动载入快照
hybrid-sleep //混合睡眠,快照并挂起

Linux_控制服务与守护进程的更多相关文章

  1. Linux控制服务和守护进程

    目录 控制服务和守护进程 1.systemd 1.1.systemd简介 1.2.systemd的新特性 1.3.systemd的核心概念Unit 2.使用systemctl管理服务 控制服务和守护进 ...

  2. Supervisor 为服务创建守护进程

    今天需要再服务上部署一个.net 方面的项目:当时开启服务的命令只能在前台执行:使用nohub CMD &等放在后台开启服务都会宕机:所以搜寻了Supervisor 这个解决办法,为服务创建守 ...

  3. VC++使用服务做守护进程的示例(转载)

    转载:http://blog.csdn.net/zdy0_2004/article/details/40461571 #define _WIN32_WINNT 0x502 #define _CRT_S ...

  4. Process 开启子进程 的两种方式、join控制子进程、守护进程

    一.join控制子进程的一种方式 当主进程需要在子进程结束之后结束时,我们需要用到join来控制子进程. import time import random from multiprocessing ...

  5. java实现服务端守护进程来监听客户端通过上传json文件写数据到hbase中

    1.项目介绍: 由于大数据部门涉及到其他部门将数据传到数据中心,大部分公司采用的方式是用json文件的方式传输,因此就需要编写服务端和客户端的小程序了.而我主要实现服务端的代码,也有相应的客户端的测试 ...

  6. linux分享一:进程全攻略--守护进程(服务)

    概括: 进程是程序的运行实例.进程对应一个唯一的进程PID, 统一程序的多个实例可以同时运行,他们的pid互不相同. 进程一般分为交互进程.批处理进程和守护进程(daemons)三类 一:什么是守护进 ...

  7. Linux 普通进程 后台进程 守护进程

    一.普通进程与后台进程 默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作.对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'& ...

  8. Linux 守护进程和超级守护进程(xinetd)

    一 .Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程来执行的 ...

  9. Linux守护进程详解(init.d和xinetd) [转]

    一 Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台 的守护进程来执行的 ...

随机推荐

  1. 构建之法与CI/CD

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 个人阅读作业2 我在这个课程的目标是 认识软工,拥抱软工,提升相关能力以便日后与其朝夕相伴 这个作业在哪个具 ...

  2. Kafka和Stream架构的使用

    Kafka的单节点运行 启动服务 Kafka 使用 ZooKeeper 如果你还没有 ZooKeeper 服务器,你需要先启动一个 ZooKeeper 服务器. 您可以通过与 kafka 打包在一起的 ...

  3. 【笔记】《Redis设计与实现》chapter17 集群

    17.1 节点 启动节点 Redis服务器启动时会根据cluster-enabled配置选项是否为yes来决定是否开启服务器的集群模式 节点会继续使用redisServer结构来保存服务器的状态,使用 ...

  4. 曾侯乙编钟引发的遐想之Java设计模式:状态模式

    目录 示例 简单例子 改进代码 状态模式 定义 意图 主要解决问题 何时使用 优缺点 曾侯乙编钟 状态模式-命令模式-策略模式 示例 一个类对外提供了多个行为,同时该类对象有多种状态,不同状态下对外的 ...

  5. python读取excel数据为json格式(兼容xls\xlsx)

    做自动化时需要从excel读取数据: 本文实现将excel文件数据读取为json格式,方便自动化调用 读取xls文件 使用xlrd读取xls文件代码: import xlrd def read_xls ...

  6. 认识二进制安全与漏洞攻防技术 (Windows平台)

    二进制漏洞是指程序存在安全缺陷,导致攻击者恶意构造的数据(如Shellcode)进入程序相关处理代码时,改变程序原定的执行流程,从而实现破坏或获取超出原有的权限. 0Day漏洞 在计算机领域中,0da ...

  7. Flask 实现分页

    pager.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  8. Portswigger web security academy:Reflected XSS

    Portswigger web security academy:Reflected XSS 目录 Portswigger web security academy:Reflected XSS Ref ...

  9. <JVM上篇:内存与垃圾回收篇>04-虚拟机栈

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  10. layui框架下如何给select的option选项赋值

    后端返回数据格式 axios方法执行成功后返回的数据格式如下图 前端下拉框 <div class="layui-form-item"> <label class= ...