跳至主要内容

博文

Systemd 入门教程

Systemd 入门教程:命令篇 Systemd 是 Linux 系统工具,用来启动 守护进程 ,已成为大多数发行版的标准配置。 本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令, 下一篇 介绍如何用于实战。 一、由来 历史上, Linux 的启动 一直采用 init 进程。 下面的命令用来启动服务。 $ sudo / etc / init . d / apache2 start # 或者 $ service apache2 start 这种方法有两个缺点。 一是启动时间长。 init 进程是串行启动,只有前一个进程启动完,才会启动下一个进程。 二是启动脚本复杂。 init 进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。 二、Systemd 概述 Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。 根据 Linux 惯例,字母 d 是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。 (上图为 Systemd 作者  Lennart Poettering ) 使用了 Systemd,就不需要再用 init 了。Systemd 取代了 initd ,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。 $ systemctl -- version 上面的命令查看 Systemd 的版本。 Systemd 的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。事实上,现在还有很多人反对使用 Systemd,理由就是它过于复杂,与操作系统的其他部分强耦合,违反"keep simple, keep stupid"的 Unix 哲学 。 (上图为 Systemd 架构图) 三、系统管理 Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。 3.1 systemctl systemctl 是 Systemd 的主命令,用于管理系统。 # 重启系统 $ sudo systemctl reboot # 关闭系统,切断电源 $ sudo systemctl p...