Linux systemd 详解
时间:2022-04-29
本文章向大家介绍Linux systemd 详解,主要内容包括拼写、命令、systemd-analyze、hostnamectl、localectl、timedatectl、loginctl、Unit、列出所有的 Unit、查看依赖关系、Unit 配置文件、查看 Unit 配置文件、状态、Target、日志管理 journalctl、定时器单元 取代 Cron、相关链接、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
目前几乎所有的 Linux 发行版已切换到 systemd
。
GitHub:https://github.com/systemd/systemd
官方网站:https://www.freedesktop.org/wiki/Software/systemd/
systemd
系列文章请查看:https://www.khs1994.com/tags/systemd/
拼写
systemd
均为小写,其他任何写法都不正确。
命令
systemctl
start
stop
restart
kill
reload
sudo systemctl daemon-reload
enable
disable
systemd-analyze
hostnamectl
查看或者设置当前主机信息。
$ sudo hostnamectl set-hostname NAME
localectl
控制系统的本地化与键盘布局。
$ sudo localectl set-locale LANG=zh_CN.utf8 | LANG=en_US.UTF-8
timedatectl
设置时间、时区
$ timedatectl set-time TIME
$ timedatectl set-timezone ZONE
# 查看时区列表 /usr/share/zoneinfo/
$ timedatectl list-timezones
loginctl
查看当前登录用户
Unit
主要分为以下几种
Service
Target
Timer
列出正在运行的 Unit
$ sudo systemctl list-units
列出所有的 Unit
$ sudo systemctl list-units -all
查看依赖关系
$ sudo systemctl list-dependencies docker.service
Unit 配置文件
/etc/systemd/system
/usr/lib/systemd/system
列出所有配置文件
$ sudo systemctl list-unit-files
查看 Unit 配置文件
$ sudo systemctl cat docker.service
状态
enabled
disabled
static
没有 Installl,无法执行,只能作为其他配置文件的依赖。
masked
该配置文件被禁止建立启动链接
[Unit] 服务的说明
Description= 描述服务
Documentation= 文档地址
Requires= 当前 Unit 依赖的其他 Unit
Wants= 与当前 Unit 配合的其他 Unit
BindsTo= 与 Requires 类似,其指定的 Unit 如果退出,则当前 Unit 也将停止运行
Before= 该字段指定的 Unit 要启动,那么必须在当前 Unit 之后启动
After= 该字段指定的 Unit 要启动,那么必须在当前 Unit 之前启动
Conflicts= 该字段指定的 Unit 不能与当前 Unit 同时启动
[Service] 服务运行参数的设置
Environment= 设置环境变量
Type=forking 是后台运行的形式
ExecStartPre= 启动当前服务之前执行的命令
ExecStart= 服务的具体运行命令
ExecStartPost= 启动当前服务之后执行的命令
ExecReload= 重启命令
ExecStop= 停止命令
ExecStopPost= 停止当前服务之后执行的命令
RestartSec= 自动重启当前服务间隔的秒数
Restart= 定义何种情况 systemd 会自动重启当前服务,可能的值包括 always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdog
TimeoutSec 定义 systemd 停止当前服务之前等待的秒数
# [Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]
WantedBy= 值为一个或多个 Target,当前 Unit 被 enable 时,符号链接放到 /etc/systemd/system/ 目录下面
# 以 Target+ .wants 后缀构成的子目录中
RequireBy=
Alias= 当前 Unit 可用于启动的别名
Also= 当前 Unit 被 enable 时,激活该字段指定的 Unit
Target
Target
是一组 Unit
的集合
日志管理 journalctl
查看某个 Unit 的日志
$ sudo journalctl -u docker.service
定时器单元 取代 Cron
*.timer
相关链接
- http://www.jinbuguo.com/systemd/
- http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
- https://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/
- http://blog.jobbole.com/97248/
- http://www.cnblogs.com/piscesLoveCc/p/5867900.html
- Arch wiki systemd
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 《RabbitMQ》如何保证消息不被重复消费
- 算法篇:树之翻转树
- 每日一题 | 约瑟夫问题
- 编码的浪漫:完美序列化的官方评测
- 【Vulnhub】symfonos2
- PWN入门(unsafe unlink)
- tf_cnn_benchmark 显存问题
- Spark on Kubernetes PodTemplate 的配置
- IO ports
- 【android系统】使用s3来上传下载文件
- 【Spark on Kubernetes】Executor环境变量
- Python获取字典值
- 应用程序InetlliJ IDEA不能打开
- yum install空间不足
- prometheus-nginxlog-exporter构建Nginx日志监控