Linux – Systemd 及其组件
Systemd 是专为 Linux 内核设计的系统。它取代了 sysvinit 进程成为第一个 PID = 1 的进程,它在 Linux 启动过程中在用户空间中执行。
为什么是systemd?
这是讨论 systemd 时首先想到的问题之一。要找到答案,我们首先要对 sysvinit 有所了解。如果我们忘记了 systemd 和其他类似的系统,那么可以肯定地说 sysvinit 是您启动任何 Linux 或 Unix 计算机时由内核启动的第一个进程。这意味着所有其他进程在某种程度上都是它们的子进程。
一旦系统成功启动,sysvinit 进程将继续运行并等待特殊命令,例如用于关闭 Linux 系统的“shutdown”命令。这意味着现在 sysvinit 进程的任务是正常关闭系统。多年来,sysvinit 一直是一个完美的系统,可以启动和关闭基于 Linux 的系统。但随着时间的推移,系统变得缓慢且不灵活,尤其是对于现代计算机而言。
因此,在 2010 年,systemd 被提出来取代广泛使用的 sysvinit 系统。两种系统各有优势,但最终决定使用系统代替 sysvinit 系统。
如何安装systemd
它预装在各种基于 Linux 的操作系统中,例如 Arch、Debian、Fedora 和 Ubuntu。
但是您也可以手动安装它。
检查当前 systemd 版本:
systemctl --version
获取 tar 更新:
https://www.freedesktop.org/software/systemd/systemd-216.tar.xz
提取文件:
我们使用 -J 开关来提取包:
tar -xJf systemd-216.tar.xz
安装准备:
必须安装以下软件包才能更好地安装
apt-get install gcc intltool gperf glib2-devel
现在输入这些命令:
cd systemd-216
pwd
配置:
现在让我们配置包
./configure
安装:
让我们安装
make install
使用 systemd 管理服务:
下面是一些有用的 systemd 实用程序的列表以及它们的功能的简要描述:
- systemctl:它控制 systemd 系统和服务。
- journalctl:用于管理日志,systemd 自带的日志系统
- hostnamectl:可以控制主机名。
- localectl:帮助配置系统本地和键盘布局。
- timedatectl:用于设置时间和日期。
- systemd-cgls :它显示 cgroup 内容。
- systemadm:它是 systemctl 命令的前端。
例如 :
如果您必须查看所有可用的服务,无论是否正在运行,您可以执行以下命令:
systemctl list-units --type service --all
要启动服务:
systemctl start [service-name]
停止服务:
systemctl stop [service-name]
要重新启动服务:
$ systemctl restart [service-name]
结果 0 表示服务当前正在运行,1 表示没有。
要重新启动系统,使用的命令如下:
systemctl halt
systemctl poweroff
systemctl reboot