Linux的Systemd系统管理

栏目: IT技术 · 发布时间: 4年前

Linux的Systemd系统管理

Linux的Systemd系统管理

Linux的Systemd系统管理

2、系统管理

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

2.1 systemctl

systemctl是Systemd的主命令,用于管理系统

# 重启系统
$ sudo systemctl reboot

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

# CPU停止工作
$ sudo systemctl halt

# 暂停系统
$ sudo systemctl suspend

# 让系统进入冬眠状态
$ sudo systemctl hibernate

# 让系统进入交互式休眠状态
$ sudo systemctl hybrid-sleep

# 启动进入救援状态(单用户状态)
$ sudo systemctl rescue

2.2 systemd-analyze

systemd-analyze命令用于查看启动耗时

# 查看启动耗时
$ systemd-analyze

Linux的Systemd系统管理

# 查看每个服务的启动耗时
$ systemd-analyze blame

Linux的Systemd系统管理

# 显示瀑布状的启动过程流
$ systemd-analyze critical-chain

Linux的Systemd系统管理

# 显示指定服务的启动流
$ systemd-analyze critical-chain docker.service

Linux的Systemd系统管理

2.3 hostnamectl

hostnamectl命令用于查看当前主机的信息

# 显示当前主机的信息
$ hostnamectl

# 设置主机名。
$ sudo hostnamectl set-hostname ishells

2.4

localectl命令用于查看本地化设置

# 查看本地化设置
$ localectl

# 设置本地化参数。
$ sudo localectl set-locale LANG=en_GB.utf8
$ sudo localectl set-keymap en_GB

Linux的Systemd系统管理

2.5 timedatectl

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

Linux的Systemd系统管理

2.6 loginctl

loginctl命令用于查看当前登录的用户

# 列出当前session
$ loginctl list-sessions

# 列出当前登录用户
$ loginctl list-users

# 列出显示指定用户的信息
$ loginctl show-user root

3、Unit

3.1 概念

Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)。Unit 一共分成 12 种。

Linux的Systemd系统管理

systemctl list-units命令可以查看当前系统的所有 Unit

# 列出正在运行的 Unit
$ systemctl list-units

Linux的Systemd系统管理

# 列出所有Unit,包括没有找到配置文件的或者启动失败的
$ systemctl list-units --all

# 列出所有没有运行的 Unit
$ systemctl list-units --all --state=inactive
# 列出所有加载失败的 Unit
$ systemctl list-units --failed

Linux的Systemd系统管理

# 列出所有正在运行的、类型为 service 的 Unit
$ systemctl list-units --type=service

Linux的Systemd系统管理

3.2 Unit 的状态

systemctl status命令用于查看系统状态和单个 Unit 的状态

# 显示系统状态
$ systemctl status

# 显示单个 Unit 的状态
$ sysystemctl status docker 

# 显示远程主机的某个 Unit 的状态
$ systemctl -H root@ishells status docker

除了status命令,systemctl还提供了三个查询状态的简单方法,主要供脚本内部的判断语句使用

# 显示某个 Unit 是否正在运行
$ systemctl is-active docker

Linux的Systemd系统管理

# 显示某个 Unit 是否处于启动失败状态
$ systemctl is-failed docker

Linux的Systemd系统管理

# 显示某个 Unit 服务是否建立了启动链接
$ systemctl is-enabled docker

Linux的Systemd系统管理

3.3 Unit 管理

日常使用中,最熟悉的就是以下这些命令了应该

# 立即启动一个服务
$ sudo systemctl start docker .service

# 立即停止一个服务
$ sudo systemctl stop docker .service

# 重启一个服务
$ sudo systemctl restart docker.service

# 杀死一个服务的所有子进程
$ sudo systemctl kill docker.service

# 重新加载一个服务的配置文件
$ sudo systemctl reload docker.service

# 重载所有修改过的配置文件
$ sudo systemctl daemon-reload

# 显示某个 Unit 的所有底层参数
$ systemctl show httpd.service

# 显示某个 Unit 的指定属性的值
$ systemctl show -p CPUShares httpd.service

# 设置某个 Unit 的指定属性
$ sudo systemctl set-property httpd.service CPUShares=500

3.4 Unit依赖关系

相互依赖关系主要分为三种:socket依赖、D-Bus(进程间通信)依赖、文件系统依赖。在systemd初始化系统机制中,不管程序的依赖关系如何,全部可以并行启动,若调用的服务程序存在依赖关系,则自动激活其他程序。

systemctl list-dependencies命令列出一个 Unit 的所有依赖

systemctl list-dependencies docker.service

Linux的Systemd系统管理

上图显示的结果中,Target类型(下文)的依赖默认不会展开显示,如果要展开Target,就需使用--all参数

systemctl list-dependencies --all  docker

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机程序设计艺术・卷3

计算机程序设计艺术・卷3

[美] 高德纳(Donald E. Knuth) / 贾洪峰 / 人民邮电出版社 / 2017-2 / 198.00元

《计算机程序设计艺术》系列被公认为计算机科学领域的权威之作,深入阐述了程序设计理论,对计算机领域的发展有着极为深远的影响。本书为该系列的第3卷,全面讲述了排序和查找算法。书中扩展了卷1中数据结构的处理方法,并对各种算法的效率进行了大量的分析。一起来看看 《计算机程序设计艺术・卷3》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具