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 条评论
登录 后参与评论

相关文章

来自专栏崔庆才的专栏

一看就懂,Python 日志模块详解及应用

Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志,安全日志、系统日志、Scheduler服务日志、FTP日志、WWW日志、DNS服务器日志等...

16840
来自专栏技术记录

Dubbo(五) Dubbo入门demo——helloworld

前言 前面我已经介绍了dubbo的一些基本工具和知识,让大家简单的了解了下RPC框架和Dubbo。接下来就是重点了,Dubbo的helloworld项目。 ? ...

1.5K90
来自专栏名山丶深处

springboot集成schedule(深度理解)

24850
来自专栏成猿之路

关于Java Tomcat 内存溢出排查心得分享

27730
来自专栏容器云生态

Openstack平台搭建之第二天

Openstack平台搭建之第二天 If you have any question ,please contact me by weichuangxxb@si...

521100
来自专栏逸鹏说道

REDIS操作命令小结

缘由: 最初学过一段时间的Redis的使用,但是后来长时间没有接触,就又忘了,往复这么弄了几次,感觉比较浪费时间,所以今天决定整理一下Redis的常见操作命令,...

36350
来自专栏名山丶深处

springboot集成schedule(深度理解)

77350
来自专栏小巫技术博客

Gradle插件开发-上传Apk到Bugly

26560
来自专栏Python

Linux权限详解 命令之 chmod:修改权限

在这种使用方式中,首先我们需要了解数字如何表示权限。 首先,我们规定 数字 4 、2 和 1表示读、写、执行权限(具体原因可见下节权限详解内容),即 r=4,w...

34920
来自专栏Java帮帮-微信公众号-技术文章全总结

Java面试系列26-spring(5)-资源管理、与struts区别、核心等

Java面试系列26-spring(5)-资源管理、与struts区别、核心等 25.Spring如何实现资源管理? 使用applicationContext....

33950

扫码关注云+社区

领取腾讯云代金券