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

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

查看所有标签

猜你喜欢:

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

永无止境

永无止境

[美] 道格拉斯•艾德华兹 / 刘纯毅 / 中信出版社 / 2012-12-15 / 59.00元

★ 值得中国初创公司反复思考的企业传记 ★ 互联网行业必读书 ★ Google高管揭开Google的神秘面纱 ★ 探寻“G力量”重塑人类知识景观的心路历程 ★ Google走过的路,Google未来的路 ★ 编辑推荐: 它是目前被公认为全球最大的搜索引擎!它是互联网上五大最受欢迎的网站之一! 它在操作界面中提供多达30余种语言选择,在全球范围内拥有无数用户......一起来看看 《永无止境》 这本书的介绍吧!

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

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器