专栏首页康怀帅的专栏Linux systemd 详解

Linux systemd 详解

目前几乎所有的 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

相关链接

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux 安装 Docker

    本文介绍最新版本的 Docker CE 安装。 本文内容来自我参与维护的 《Docker 从入门到实践》 项目。 CentOS 7 配置 REPO Instal...

    康怀帅
  • Docker + Drone CI/CD 实践

    测试环境:macOS + Drone + Gogs + Docker Registry 生产环境:Debian 9 + Drone + GitHub + 腾讯云...

    康怀帅
  • Apache PHP 配置

    本文简要介绍了 Apache 解析 PHP 文件。 PHP-FPM LoadModule proxy_module modules/mod_proxy.so L...

    康怀帅
  • Kotlin中,函数作为参数,T.()->Unit 和 ()->Unit 的区别

    Xiaolei123
  • AUGraph结合RemoteI/O Unit与Mixer Unit

    前言 相关文章: 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使...

    落影
  • .NET高级特性-Emit(2)类的定义

    在上一篇博文发了一天左右的时间,就收到了博客园许多读者的评论和推荐,非常感谢,我也会及时回复读者的评论。之后我也将继续撰写博文,梳理相关.NET的知识,希望.N...

    李明成
  • New UWP Community Toolkit - RotatorTile

    概述 UWP Community Toolkit  中有一个为图片或磁贴提供轮播效果的控件 - RotatorTile,本篇我们结合代码详细讲解  Rotato...

    Shao Meng
  • MediatR 知多少

    首先不用查字典了,词典查无此词。猜测是作者笔误将Mediator写成MediatR了。废话少说,转入正题。

    圣杰
  • AI一分钟 | Windows负责人离职;华为2017年收入6036亿元,净利475亿元

    整理 | SuiSui 一分钟AI 因亚利桑那州致命事故尚未解决,Uber放弃加州自动驾驶汽车测试权,不再续办牌照 华为公布2017年财报:年收入6036亿元,...

    AI科技大本营
  • 快速学习-Scala Unit类型、Null类型和Nothing类型

    cwl_java

扫码关注云+社区

领取腾讯云代金券