前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux systemd 详解

Linux systemd 详解

作者头像
康怀帅
发布2018-02-28 14:58:58
4.1K0
发布2018-02-28 14:58:58
举报
文章被收录于专栏:康怀帅的专栏

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

查看或者设置当前主机信息。

代码语言:javascript
复制
$ sudo hostnamectl set-hostname NAME

localectl

控制系统的本地化与键盘布局。

代码语言:javascript
复制
$ sudo localectl set-locale LANG=zh_CN.utf8 | LANG=en_US.UTF-8

timedatectl

设置时间、时区

代码语言:javascript
复制
$ timedatectl set-time TIME

$ timedatectl set-timezone ZONE

# 查看时区列表 /usr/share/zoneinfo/

$ timedatectl list-timezones

loginctl

查看当前登录用户

Unit

主要分为以下几种

Service

Target

Timer

列出正在运行的 Unit

代码语言:javascript
复制
$ sudo systemctl list-units

列出所有的 Unit

代码语言:javascript
复制
$ sudo systemctl list-units -all

查看依赖关系

代码语言:javascript
复制
$ sudo systemctl list-dependencies docker.service

Unit 配置文件

/etc/systemd/system

/usr/lib/systemd/system

列出所有配置文件

代码语言:javascript
复制
$ sudo systemctl list-unit-files

查看 Unit 配置文件

代码语言:javascript
复制
$ sudo systemctl cat docker.service

状态

enabled

disabled

static 没有 Installl,无法执行,只能作为其他配置文件的依赖。

masked 该配置文件被禁止建立启动链接

代码语言:javascript
复制
[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 的日志

代码语言:javascript
复制
$ sudo journalctl -u docker.service

定时器单元 取代 Cron

*.timer

相关链接

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 拼写
  • 命令
    • systemctl
      • systemd-analyze
        • hostnamectl
          • localectl
            • timedatectl
              • loginctl
              • Unit
                • 列出正在运行的 Unit
                  • 列出所有的 Unit
                    • 查看依赖关系
                    • Unit 配置文件
                      • 列出所有配置文件
                        • 查看 Unit 配置文件
                          • 状态
                          • Target
                          • 日志管理 journalctl
                            • 查看某个 Unit 的日志
                            • 定时器单元 取代 Cron
                            • 相关链接
                            相关产品与服务
                            容器服务
                            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档