当前位置: 首页 > web >正文

linux systemd 服务配置

在 Linux 系统中,systemd 服务文件是配置服务的核心,其格式为 INI 文件,由多个 [Section] 组成,每个部分包含不同的配置项。下面详细介绍服务文件的内容和配置方法。
服务文件的基本结构
一个完整的 systemd 服务文件通常包含三个核心部分:

[Unit]
Description=描述信息
After=依赖服务[Service]
ExecStart=启动命令
WorkingDirectory=工作目录
User=运行用户
Type=服务类型
Restart=重启策略[Install]
WantedBy=多用户目标
  1. [Unit] 部分
    这部分主要用于设置服务的元数据和依赖关系。
[Unit]
Description=My Python Application    # 服务的简短描述
Documentation=man:systemd.special   # 可选的文档引用
After=network.target                # 指定服务启动的顺序依赖
Before=other.service                # 可选,指定在哪些服务之前启动
Wants=other.service                 # 可选,弱依赖关系
Requires=other.service              # 可选,强依赖关系

关键配置项:

  • After:表明此服务应在哪些服务启动之后再启动。
  • Wants:意味着如果被依赖的服务启动失败,不会影响当前服务的启动。
  • Requires:表示被依赖的服务必须成功启动,否则当前服务也无法启动。
  1. [Service] 部分
    该部分用于定义服务的启动方式和运行行为。
[Service]
Type=simple                        # 服务类型,常见值有 simple、forking、oneshot 等
ExecStart=/usr/bin/python3 /path/to/script.py  # 启动服务的命令
ExecStartPre=/path/to/pre-script   # 可选,启动前执行的命令
ExecStartPost=/path/to/post-script # 可选,启动后执行的命令
ExecStop=/path/to/stop-command     # 可选,停止服务的命令
ExecReload=/path/to/reload-command # 可选,重载配置的命令
Restart=always                     # 重启策略,可选值有 no、on-success、on-failure、always 等
RestartSec=5s                      # 重启前的等待时间
User=username                      # 运行服务的用户
Group=groupname                    # 运行服务的用户组
WorkingDirectory=/path/to/app      # 工作目录
Environment=VAR1=value1            # 环境变量设置
EnvironmentFile=/path/to/envfile   # 可选,环境变量文件路径
StandardOutput=syslog              # 标准输出日志位置
StandardError=syslog               # 标准错误日志位置
LimitNOFILE=65536                  # 可选,文件描述符限制
TimeoutStartSec=30                 # 可选,启动超时时间

关键配置项:

  • Type:不同类型对应不同的启动方式,常用的有:
    • simple:默认值,适用于直接启动且不会后台运行的程序。
    • forking:适用于会通过 fork 方式后台运行的程序,如 Apache。
    • oneshot:适用于一次性任务,如系统初始化脚本。
  • ExecStart:启动服务的命令,必须使用绝对路径。
  • Restart:控制服务在异常退出时是否自动重启。
  1. [Install] 部分
    此部分用于配置服务的安装选项,主要是定义服务如何随系统启动。
[Install]
WantedBy=multi-user.target         # 常用的目标是 multi-user.target
RequiredBy=other.service           # 可选,被其他服务所依赖
Alias=custom-name.service          # 可选,服务的别名
Also=other.service                 # 可选,安装此服务时同时安装的其他服务

关键配置项:

  • WantedBy:指定服务所在的目标单元,multi-user.target 是大多数服务器环境的标准运行级别。
http://www.xdnf.cn/news/12238.html

相关文章:

  • 基础线性代数
  • Android协程学习
  • GPU加速与非加速的深度学习张量计算对比Demo,使用PyTorch展示关键差异
  • 面试总结一
  • 微服务架构下的服务注册与发现:Eureka 深度解析
  • Dify源码教程:账户和密码传递分析
  • 十六进制数字接收的方式
  • Linux程序运行日志总结
  • 面试题:SQL 中如何将 多行合并为一行(合并行数据为列)?
  • 第46节:多模态分类(图像+文本)
  • 学习路之PHP--webman安装及使用
  • 11.MySQL事务管理详解
  • 十八、【用户认证篇】安全第一步:基于 JWT 的前后端分离认证方案
  • 物流瘫痪预警:亚马逊多仓爆仓,卖家如何抢占夏季性价比市场?
  • 【Android基础回顾】五:AMS(Activity Manager Service)
  • 【Java Web】9.Maven高级
  • AI编程助手入门指南:GitHub Copilot、Cursor与Claude的安装与基础使用
  • [ Qt ] | 与系统相关的操作(三):QFile介绍和使用
  • 零碳园区:多维构建绿色标杆,开启美丽中国新纪元
  • 抑郁症患者数据分析
  • Redis大量key集中过期怎么办
  • 环境变量深度解析:从配置到内核的全链路指南
  • DAY 22 Kaggle 比赛
  • 简化复杂系统的优雅之道:深入解析 Java 外观模式
  • 无人机军用与民用技术对比分析
  • C++自定义简单的内存池
  • 数据分析实战2(Tableau)
  • 极昆仑HybridRAG方案:突破原生 RAG 瓶颈,开启大模型应用新境界
  • 企业管理中,商业智能BI主要做哪些事情?
  • 优化学习笔记