linux系统进程守护 Systemd详细介绍

Systemd 是一个 Linux 系统的初始化系统和服务管理器,用于启动和守护系统进程。它代替了传统的 SysVinitUpstart,成为许多流行 Linux 发行版的默认初始化系统,如 CentOSUbuntuDebian 等。Systemd 提供了更快的启动速度、并行启动、更好的事件并行处理等功能,同时支持更多的系统和服务管理功能。

Systemd 的基本概念和组件

  1. Unit(单元):
  • Systemd 的基本单位,用于描述系统上运行的各种资源,如服务、套接字、设备等。
  • 单元可以是服务单元(.service)、挂载单元(.mount)、套接字单元(.socket)等。
  1. Service Unit(服务单元):
  • 用于描述一个系统服务的单元,例如网络服务、数据库服务等。
  • Service unit 文件通常以 .service 结尾,位于 /etc/systemd/system//usr/lib/systemd/system/ 目录下。
  1. Target Unit(目标单元):
  • 用于组织和描述一组相关的单元。
  • 可以将一组服务定义为一个目标,例如多用户模式(multi-user.target)、图形用户界面模式(graphical.target)等。
  1. Systemd 配置文件:
  • /etc/systemd/system/:用于存放系统管理员创建的单元配置文件。
  • /usr/lib/systemd/system/:用于存放系统默认的单元配置文件。

Systemd 的工作原理
初始化:

  • Systemd 在启动时会加载系统配置,并根据配置文件创建相应的单元。
  • 它通过依赖关系和并行启动的方式,高效地管理系统资源和服务。

服务管理:

  • Systemd 监控和管理系统上运行的服务单元。
  • 可以启动、停止、重启、启用、禁用服务,以及查看服务状态等。

事件监听:

  • Systemd 可以监听系统事件,如设备挂载、网络状态变化等。
  • 可以通过单元的依赖关系和条件判断来触发相应的操作。

日志记录:

  • Systemd 使用 Journal 来记录系统日志,提供了更加结构化和高效的日志管理方式。

Systemd 的适用场景

  • 高性能服务器:Systemd 能够并行启动系统服务,提高服务器启动速度和资源利用率。
  • 嵌入式系统:Systemd 可以精细管理系统资源,适用于嵌入式设备和物联网设备。
  • 容器化环境:Systemd 可以作为容器内部的初始化系统,管理容器内的服务和资源。
  • 桌面系统:Systemd 支持管理图形用户界面服务,适用于桌面系统和笔记本电脑。

实战配置:
配置Systemd 启动python运行的程序api.py

  1. 首先,创建一个名为 api.service 的服务单元文件,位置通常为 /etc/systemd/system/ 目录下。
sudo nano /etc/systemd/system/api.service
  1. 在该文件中输入以下内容:
[Unit]
Description=API Service
After=network.target

[Service]
User=username
Group=groupname
WorkingDirectory=/path/to/your/api.py
ExecStart=/usr/bin/python3 /path/to/your/api.py
Restart=always

[Install]
WantedBy=multi-user.target
  1. 确保替换以下内容:
  • username:你希望服务运行的用户。
  • groupname:你希望服务运行的用户组。
  • /path/to/your/api.py:你的 api.py 文件的绝对路径。
    保存并关闭文件(在 Nano 编辑器中按下 Ctrl + X,然后按 Y 确认保存,最后按 Enter 离开)。
  1. 重新加载 Systemd 配置:
sudo systemctl daemon-reload
  1. 启动你的服务:
sudo systemctl start api
  1. 可以使用以下命令来检查服务状态:
sudo systemctl status api
  1. 如果一切正常,你可以配置开机自启动:
sudo systemctl enable api

这样,Python 程序就会作为一个 Systemd 服务在系统启动时自动启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

搬砖的诗人Z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值