wikipedia

浅析 Linux 初始化 init 系统

systemd 中文手册

fedoraproject - systemd

1. Systemd 简介

Systemd 是 Linux 系统的初始化系统。

提高启动速度

通过并行启动和减少启动进程,且采用了 socket / D-Bus activation 激活等技术,实现了较快的启动速度。

管理进程的生命周期

init 初始化系统的一个重要职责就是跟踪和管理服务进程的生命周期。不仅要启动服务,同时也能够停止服务。

Systemd 采用 Linux 的 Cgroup 特性跟踪和管理进程的生命周期。当停止服务时,通过查询 CGroup,systemd 可以确保找到所有的相关进程,从而干净地停止服务。

当进程创建子进程时,子进程会继承父进程的 CGroup。因此无论服务如何启动新的子进程,所有的这些相关进程都会属于同一个 CGroup,systemd 只需要简单地遍历指定的 CGroup 即可正确地找到所有的相关进程,将它们一一停止即可。

日志服务

systemd 自带日志服务 journald,该日志服务的设计初衷是克服现有的 syslog 服务的缺点:

  • syslog 不安全,每一个本地进程都可以声称自己是 Apache PID 4711,而 syslog 也就相信并保存到磁盘上。
  • 数据没有严格的格式。
  • Systemd Journal 用二进制格式保存所有日志信息,用户使用 journalctl 命令来查看日志信息。

Systemd Journal 的优点如下:

  • 零维护:日志是除错和监控系统的核心功能,因此它自己不能再产生问题。举例说,自动管理磁盘空间,避免由于日志的不断产生而将磁盘空间耗尽。
  • 统一化:各种不同的日志存储技术应该统一起来,将所有的可记录事件保存在同一个数据存储中。所以日志内容的全局上下文都会被保存并且可供日后查询。例如一条固件记录后通常会跟随一条内核记录,最终还会有一条用户态记录。重要的是当保存到硬盘上时这三者之间的关系不会丢失。Syslog 将不同的信息保存到不同的文件中,分析的时候很难确定哪些条目是相关的。
  • 安全性:日志文件是可以验证的,让无法检测的修改不再可能。

2. Systemd 和 sysvinit 命令的对照表

Sysvinit 命令 Systemd 命令 备注
service foo start systemctl start foo.service 启动服务
service foo stop systemctl stop foo.service 停止服务
service foo restart systemctl restart foo.service 重启服务
service foo reload systemctl reload foo.service 当支持时,重新装载配置文件而不停止服务
service foo condrestart systemctl condrestart foo.service 如果服务正在运行那么重启它
service foo status systemctl status foo.service 查看服务状态
ls /etc/rc.d/init.d/ systemctl list-unit-files –type=service 用来列出可以启动或停止的服务列表
chkconfig foo on systemctl enable foo.service 在下次开机时或满足其他触发条件时启动服务
chkconfig foo off systemctl disable foo.service 在下次开机时或满足其他触发条件时停止服务
chkconfig foo systemctl is-enabled foo.service 用来检查一个服务在当前环境下被配置为启用还是禁用
chkconfig –list systemctl list-unit-files –type=service 输出在各个运行级别下服务的启用和禁用情况
chkconfig foo –list ls /etc/systemd/system/*.wants/foo.service 用来列出该服务在哪些运行级别下启用和禁用
chkconfig foo –add systemctl daemon-reload 当创建新服务文件或者变更设置时使用
telinit 3 systemctl isolate multi-user.target (OR systemctl isolate runlevel3.target OR telinit 3) 改变至多用户运行级别

Linux 初始化系统(init)- systemd的更多相关文章

  1. Linux centos7系统列出systemd下所有正在运行的服务

    Linux系统提供各种系统服务(如进程管理.登录.syslog.cron等)和网络服务.Linux支持不同的方法来管理服务(启动.停止.重启.在系统启动时的自动启动等),通常通过流程或服务管理器. 大 ...

  2. Linux 初始化系统 systemd - journald 日志

    journalctl 中文手册 archlinux - journal systemd-journald 用于检索 systemd 的日志,是 systemd 自带的日志系统. 1. systemd- ...

  3. Linux 初始化系统 SystemV Upstart

    System V 特点 缺点: 启动时间长,init是串行启动,只有前一个进程启动完,才会启动下一个进程 启动脚本复杂,init只是执行启动脚本,不管其他事情,脚本需要自己处理各种情况,这往往使得脚本 ...

  4. 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 第 2 部分: UpStart 第 3 部分: Systemd

    浅析 Linux 初始化 init 系统,第 1 部分: sysvinit  第 2 部分: UpStart 第 3 部分: Systemd http://www.ibm.com/developerw ...

  5. 浅析 Linux 初始化 init 系统,Systemd

    原文地址:http://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/ Systemd 的简介和特点 Systemd 是 Linux 系 ...

  6. Linux 系统之Systemd

    子贡问为仁.子曰:“工欲善其事,必先利其器.居是邦也,事其大夫之贤者,友其士之仁者.”——孔子(春秋)<论语·卫灵公> [工欲善其事,必先利其器] 掌握一门技术,知道其发展历程是非常重要的 ...

  7. 【转】Linux 初始化 init 系统 [sysvinit systemd upstart]

    http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp?sort_by=&show_abstract=true& ...

  8. Linux初始化init系统-Sysvinit、Upstart、Systemd

    首先了解以下Ubuntu运行级别(init)对应工具的变化历史: 1.Ubuntu 6.10及以前版本使用Sysvinit. 2.Ubuntu 14.10及以前版本使用Upstart但是还留着Sysv ...

  9. 浅析 Linux 初始化 init 系统

    近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 ...

随机推荐

  1. JavaWeb servlet,乱码的原因和解决

    请求为什么会有乱码? 答:当表单提交时,浏览器对中文参数值进行编码(使用打开表单所在的页面时的字符集进行编码,web服务器在默认情况下会使用iso-8859-1去解码,编码和解码方式不一致,就会产生乱 ...

  2. 问题 G: 圆桌上的晚餐

    问题 G: 圆桌上的晚餐 时间限制: 1 Sec  内存限制: 128 MB提交: 1583  解决: 656[提交] [状态] [命题人:jsu_admin] 题目描述         大家一定在圆 ...

  3. Hystrix (容错,回退,降级,缓存)

    Hystrix熔断机制就像家里的保险丝一样,若同时使用高功率的电器,就会烧坏电路,这时候保险丝自动断开就有效的保护了电路.而我们程序中也同样是这样.例如若此时数据库压力太大速度很慢,此时还有不断的请求 ...

  4. zip loader

    GS.ZipAssetLoader = function(audioContext) { this.audioContext = audioContext, this.objLoader = new ...

  5. IC设计流程介绍

    芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计. 1. 规格制定        芯片规格,也就像功能列表一样 ...

  6. CSP2019初赛训练

    [解释执行语言] C,C++,Pascal都是编译执行的语言,Python是解释执行. 扩展:JS.PHP也是解释运行语言.解释性灵活但是效率较低.一些解释性语言也有了也能在一定程度上编译,或者使用虚 ...

  7. thinkphp 关联

    原理:https://www.kancloud.cn/laowu199/e_dev/448632 示例数据库 hasOne:有一个,加上主谓语应该是 ,A 有一个 BhasMany:有很多,A 有很多 ...

  8. django之重定向redirect

    一:redirect的场景 加入登录成功后,需要跳转到主页:登录退出后,跳转到主页面.

  9. hdu 4845 : 拯救大兵瑞恩 (bfs+状态压缩)

    题目链接 #include<bits/stdc++.h> using namespace std; typedef long long LL; int n,m,p,s,k; ,,,-}; ...

  10. python实现Restful服务 (基于flask)(1)

    参考:https://www.jianshu.com/p/6ac1cab17929 参考:https://www.cnblogs.com/alexyuyu/p/6243362.html 参考:http ...