详细分析Linux中Systemd的基本知识(附Demo)

1. 基本知识

Systemd 是一个系统和服务管理器,广泛用于现代 Linux 发行版

它主要负责启动和管理系统服务、处理系统初始化、服务依赖关系、系统日志等

所涉及的基本知识如下:

  • 单元(Unit):
    基本单位是“单元”(unit)
    单元可以是服务、套接字、设备、挂载点、自动挂载、交换区、目标等
    常见的单元类型包括 .service(服务单元)、.socket(套接字单元)、.target(目标单元)

  • 目标(Target):
    将多个单元组合在一起以实现某种系统状态的单元
    例如,multi-user.target 用于多用户模式,graphical.target 用于图形用户界面模式

  • 服务(Service):
    .service 是 Systemd 中最常见的单元类型,用于定义和管理系统服务

  • 依赖关系:
    处理服务之间的依赖关系,确保服务按正确的顺序启动和停止
    可以使用 Requires=, Wants=, Before=, After= 等指令在单元文件中设置依赖关系

2. 常见命令

查看状态:systemctl status <unit_name>

示例:查看 nginx 服务状态:systemctl status nginx

截图如下:

在这里插入图片描述

  1. 启动服务:systemctl start <unit_name>

  2. 停止服务:systemctl stop <unit_name>

  3. 重启服务:systemctl restart <unit_name>

  4. 启用服务(开机启动):systemctl enable <unit_name>

  5. 禁用服务(取消开机启动):systemctl disable <unit_name>

  6. 查看所有单元状态:systemctl list-units

  7. 查看开机启动的服务:systemctl list-unit-files --type=service

3. Demo

3.1 测试

要创建一个 Systemd 服务单元文件,通常需要放置在 /etc/systemd/system/ 目录下,文件名以 .service 结尾

以下是一个简单的服务单元文件示例

[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/usr/bin/my-custom-service
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • [Unit] 部分描述了单元的元数据和依赖关系
  • [Service] 部分定义了服务的启动命令、重启策略等
  • [Install] 部分定义了服务的安装行为,WantedBy 选项指定了服务在启动时要附加到哪个目标

为了配置开机启动

  1. 创建服务单元文件:将上述示例文件保存为 /etc/systemd/system/my-custom-service.service

  2. 重新加载 Systemd 配置:systemctl daemon-reload

  3. 启动服务并设置开机启动:

systemctl start my-custom-service
systemctl enable my-custom-service
  1. 检查服务状态:systemctl status my-custom-service

3.2 实战

由于此处的服务安装,没有使用上Systemd服务,无法使用开机自启的服务

在这里插入图片描述

如果机器异常重启,需要相应进行配置

  1. 创建以及编辑服务单元文件:(不熟悉nano的命令,可以使用vim)
    在 /etc/systemd/system/ 目录下创建一个名为 samba.service 的文件
    sudo nano /etc/systemd/system/samba.service
    在这里插入图片描述
    crtl+x保存并输入y,之后enter退出即可(不熟悉此命令推荐使用vim进行编辑)

  2. 重新加载 Systemd 配置:sudo systemctl daemon-reload

  3. 启动服务并设置开机启动:

sudo systemctl start samba
sudo systemctl enable samba
  1. 检查服务状态:sudo systemctl status samba

最终配置如下:

在这里插入图片描述

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值