Systemd 简析

Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。
历史上,Linux 的启动一直采用init进程。
下面的命令用来启动服务。

$ sudo /etc/init.d/apache2 start
# 或者
$ service apache2 start

这种方法有两个缺点。
一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。

一、Systemd 概述

Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。
根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。
使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。

二、系统管理

Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

  • 2.1、systemctl
#启动docker服务
$ sudo systemctl start docker

#设置docker服务开机启动
$sudo systemctl enable docker

#停止docker 服务
$sudo systemctl stop docker

#kill docker服务,当stop命令无响应的时候可以使用杀进程的形式停止
$ sudo systemctl kill docker

#重启docker服务
$ sudo systemctl restart docker

--------------------------

# 重启系统
$ sudo systemctl reboot

# 关闭系统,切断电源
$ sudo systemctl poweroff

# CPU停止工作
$ sudo systemctl halt

# 暂停系统
$ sudo systemctl suspend

# 让系统进入冬眠状态
$ sudo systemctl hibernate
  • 2.2 hostnamectl
# 显示当前主机的信息
$ hostnamectl

# 设置主机名。
$ sudo hostnamectl set-hostname s1
  • 2.3 localectl
# 查看本地化设置
$ localectl

# 设置本地化参数。
$ sudo localectl set-locale LANG=en_GB.utf8
$ sudo localectl set-keymap en_GB
  • 2.4 timedatectl
# 查看当前时区设置
$ timedatectl

# 显示所有可用的时区
$ timedatectl list-timezones                                                                                   

# 设置当前时区
$ sudo timedatectl set-timezone America/New_York
$ sudo timedatectl set-time YYYY-MM-DD
$ sudo timedatectl set-time HH:MM:SS

你可能感兴趣的:(Systemd 简析)