news 2026/4/15 20:42:28

Linux CentOS 系统,Systemd 配置文件模板和使用说明,设置 MinIO Systemd 服务管理实例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux CentOS 系统,Systemd 配置文件模板和使用说明,设置 MinIO Systemd 服务管理实例

一、Linux CentOS 系统,Systemd 配置文件模板和使用说明

在 CentOS 系统中,systemd是系统的初始化进程(PID 1),负责管理系统服务(守护进程)的启动、停止、依赖关系和开机自启等。编写systemd配置文件(也称为单元文件)是管理服务的核心。

以下是systemd服务配置文件的通用模板、各配置项的详细说明以及使用步骤。

📄 通用配置文件模板

你可以将以下内容保存为/etc/systemd/system/your-service-name.service

[Unit] # 服务的描述信息 Description=My Custom Application Service # 服务的文档地址(可选) Documentation=man:gitlab-ctl(1) https://example.com/docs # 指定本服务在哪些服务之后启动 After=network.target docker.service # 指定本服务在哪些服务之前启动 Before=tomcat.service # 强依赖关系,如果列出的服务启动失败,本服务也不会启动 Requires=docker.service # 弱依赖关系,推荐使用,即使依赖的服务启动失败,本服务仍会尝试启动 Wants=network-online.target [Service] # 服务的类型 # simple: 默认值,ExecStart启动的进程为主进程 # forking: 启动命令将以fork()形式启动,父进程退出,子进程继续运行 # oneshot: 一次性进程,执行完即结束(常用于脚本) # notify: 类似simple,但会等待服务通过sd_notify()发出就绪信号 Type=simple # 启动服务时执行的命令 ExecStart=/usr/bin/python3 /opt/myapp/app.py # 启动前执行的命令(可选) ExecStartPre=/bin/mkdir -p /var/run/myapp # 停止服务时执行的命令 ExecStop=/bin/kill -SIGTERM $MAINPID # 重启服务时执行的命令 ExecReload=/bin/kill -SIGHUP $MAINPID # 服务的重启策略 # no: 不重启 # on-failure: 发生错误时重启(推荐) # always: 总是重启 Restart=on-failure # 重启前的等待时间(秒) RestartSec=5 # 服务运行的用户和组 User=myuser Group=mygroup # 服务的工作目录 WorkingDirectory=/opt/myapp # 环境变量文件路径(可选) EnvironmentFile=/etc/sysconfig/myapp # 标准输出和标准错误输出的位置 StandardOutput=journal StandardError=journal [Install] # 指定服务安装(enable)时所属的目标 # multi-user.target: 多用户文本模式 # graphical.target: 图形界面模式 WantedBy=multi-user.target

🧩 配置项详细说明

[Unit] 区块:服务元数据与依赖
  • Description: 服务的简短描述,便于识别。
  • After / Before: 定义服务的启动顺序。例如,After=network.target表示网络启动后,本服务才启动。
  • Requires / Wants: 定义服务间的依赖关系。
    • Requires: 强依赖。如果依赖的服务启动失败,本服务也不会启动。
    • Wants: 弱依赖。即使依赖的服务启动失败,本服务仍会尝试启动,这是更常用的做法。
[Service] 区块:进程运行配置
  • Type: 定义服务的启动类型。
    • simple(默认):ExecStart启动的进程就是主进程。
    • forking: 适用于传统的守护进程(daemon),启动命令会 fork 一个子进程,然后父进程退出。
    • oneshot: 适用于只运行一次的脚本,执行完即结束。
  • ExecStart: 启动服务时执行的命令。注意:这里不能使用&将进程放入后台,也不能使用管道|或重定向>(除非在命令中用sh -c包裹)。
  • Restart: 定义服务异常退出后的重启策略。
    • no: 不重启。
    • on-failure: 当进程以非零退出码退出,或被信号异常终止,或超时时重启。(最常用)
    • always: 无论何种原因退出,都无条件重启。
  • User / Group: 指定服务运行的用户和组,出于安全考虑,不建议使用root,除非必要。
  • WorkingDirectory: 指定服务的工作目录,避免脚本中使用相对路径出错。
[Install] 区块:开机启动配置
  • WantedBy: 定义服务在哪个系统目标(target)下启动。
    • multi-user.target: 类似于传统的运行级别 3,多用户文本模式,适用于服务器。
    • graphical.target: 类似于传统的运行级别 5,图形界面模式。

🛠️ 使用步骤

  1. 创建服务文件
    使用文本编辑器在/etc/systemd/system/目录下创建服务文件。此目录下的文件优先级最高,推荐在此处创建自定义服务。

    sudovi/etc/systemd/system/myapp.service
  2. 重新加载配置
    每次修改或创建服务文件后,必须执行此命令,让systemd重新读取配置。

    sudosystemctl daemon-reload
  3. 启动服务

    sudosystemctl start myapp.service

    注:.service后缀可以省略。

  4. 设置开机自启

    sudosystemctlenablemyapp.service
  5. 查看服务状态
    这是排查服务启动失败问题的最重要命令。

    sudosystemctl status myapp.service

    如果服务启动失败,状态信息中通常会包含错误原因,或者你可以使用journalctl查看详细日志:

    # 查看服务的实时日志sudojournalctl -u myapp.service -f# 查看服务本次启动以来的日志sudojournalctl -u myapp.service --since today

💡 常用管理命令速查

命令说明
systemctl start <服务名>立即启动服务
systemctl stop <服务名>立即停止服务
systemctl restart <服务名>重启服务
systemctl reload <服务名>重载服务配置(不中断服务)
systemctl enable <服务名>设置开机自启
systemctl disable <服务名>取消开机自启
systemctl status <服务名>查看服务运行状态
systemctl is-enabled <服务名>检查服务是否设置为开机启动
journalctl -u <服务名>查看服务日志

二、设置 MinIO Systemd 服务管理实例

6.1.4 部署MinIO

server01部署MinIO,安装方式采用rpm离线安装,具体步骤可参考官方文档。

  1. 获取MinIO安装包

    下载地址如下:https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm,通过以下命令可直接将安装包下载至服务器

    wgethttps://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm

    注:若下载缓慢,大家可直接使用课程资料中附带的安装包

  2. 安装MinIO

    rpm-ivh minio-20230809233022.0.0.x86_64.rpm
  3. 集成Systemd

    • Systemd概述

      Systemd是一个广泛应用于Linux系统的系统初始化和服务管理器,其可以管理系统中的各种服务和进程,包括启动、停止和重启服务,除此之外,其还可以监测各服务的运行状态,并在服务异常退出时,自动拉起服务,以保证服务的稳定性。系统自带的防火墙服务firewalld,我们自己安装的mysqldredis均是由Systemd进行管理的,此处将MinIO服务也交给Systemd管理。

    • 编写MinIO服务配置文件

      Systemd所管理的服务需要由一个配置文件进行描述,这些配置文件均位于/etc/systemd/system/或者/usr/lib/systemd/system/目录下,下面创建MinIO服务的配置文件。

      执行以下命令创建并打开minio.service文件

      vim/etc/systemd/system/minio.service

      内容如下,具体可参考MinIO官方文档。

      [Unit] Description=MinIO Documentation=https://min.io/docs/minio/linux/index.html Wants=network-online.target After=network-online.target AssertFileIsExecutable=/usr/local/bin/minio [Service] WorkingDirectory=/usr/local ProtectProc=invisible EnvironmentFile=-/etc/default/minio ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi" ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES Restart=always LimitNOFILE=65536 TasksMax=infinity TimeoutStopSec=infinity SendSIGKILL=no [Install] WantedBy=multi-user.target

      注意

      重点关注上述文件中的以下内容即可

      • EnvironmentFile,该文件中可配置MinIO服务所需的各项参数
      • ExecStart,该参数用于配置MinIO服务的启动命令,其中$MINIO_OPTS$MINIO_VOLUMES,均引用于EnvironmentFile中的变量。
        • MINIO_OPTS用于配置MinIO服务的启动选项,可省略不配置。
        • MINIO_VOLUMES用于配置MinIO服务的数据存储路径。
      • Restart,表示自动重启
    • 编写EnvironmentFile文件

      执行以下命令创建并打开/etc/default/minio文件

      vim/etc/default/minio

      内容如下,具体可参考官方文档。

      MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin MINIO_VOLUMES=/data MINIO_OPTS="--console-address :9001"

      注意

      • MINIO_ROOT_USERMINIO_ROOT_PASSWORD为用于访问MinIO的用户名和密码,密码长度至少8位

      • MINIO_VOLUMES用于指定数据存储路径,需确保指定的路径是存在的,可执行以下命令创建该路径。

        mkdir/data
      • MINIO_OPTS中的console-address,用于指定管理页面的地址。

  4. 启动MinIO

    执行以下命令启动MinIO

    systemctl start minio

    执行以下命令查询运行状态

    systemctl status minio

    设置MinIO开机自启

    systemctlenableminio
  5. 访问MinIO管理页面

    管理页面的访问地址为:http://192.168.10.101:9001

    注意

    ip需要根据实际情况做出修改

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/21 13:47:26

编写语言交友APP,根据用户想学习的语言(英语/韩语/日语/法语),匹配母语者/学习者,支持在线语音/文字交流,互相学习语言,结识外国朋友。

1. 实际应用场景描述场景小李是一名英语学习者&#xff0c;想提高口语&#xff0c;但身边缺少英语母语者练习。他希望找到一个既能练习语言又能结交国际朋友的平台&#xff0c;可以&#xff1a;- 匹配想学中文的英语母语者- 进行文字/语音聊天练习- 互相纠正发音和语法- 组织线…

作者头像 李华
网站建设 2026/4/15 14:47:53

必收藏!大模型四大行业应用实践详解(小白/程序员入门必备)

本文详细拆解大模型技术在汽车、金融、能源和电商四大核心行业的落地实践&#xff0c;结合具体应用场景补充实操逻辑&#xff0c;适合小白入门了解大模型行业价值&#xff0c;也方便程序员参考技术落地思路。在汽车领域&#xff0c;大模型实现智能座舱与自动驾驶的双重升级&…

作者头像 李华
网站建设 2026/4/5 17:42:19

质押挖矿+Swap交易所:DeFi新基建的“双核引擎”与万亿生态密码

引言&#xff1a;当代码成为金融世界的“新上帝”2025年&#xff0c;全球DeFi锁仓量突破1.2万亿美元&#xff0c;东南亚农民通过链上借贷协议获得实时农业贷款&#xff0c;非洲创业者用NFT票据完成跨境支付&#xff0c;华尔街基金经理开始用AI分析链上流动性池……这场始于2018…

作者头像 李华