前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何将组件启动服务封装为系统服务

如何将组件启动服务封装为系统服务

原创
作者头像
空洞的盒子
发布2024-06-05 15:02:54
1181
发布2024-06-05 15:02:54
举报
文章被收录于专栏:JD的专栏

前言:当我们使用tar包的方式,安装某些组件后,在启动时通常需要再安装目录的/bin目录进行相关服务的启动。如果更新配置或重启机器后再进行服务启动时,就需要进到组件安装目录下或通过绝对路径的方式进行相关启动命令的调用。

本次我们使用的是Linux系统中的systemctl命令,将我们安装的组件服务,注册为systemctl管理的系统命令。

systemctl命令介绍

systemctl是一个用于控制systemd系统和服务管理器的命令,它是用于取代旧的System V初始化系统和daemon脚本的工具。systemd是Linux操作系统的一个核心功能,它用于初始化系统,管理系统服务和应用程序。

systemctl命令运行原理

  1. systemd通过其守护进程systemd-system.service来管理系统服务。
  2. 每个服务都有一个对应的systemd单元(.service文件),它包含了服务的配置信息和启动脚本。
  3. systemctl命令可以与这些单元进行交互,来启动、停止、重启、启用或禁用服务。
  4. 使用systemctl可以查看服务的状态,以及管理系统的单元和任务。

环境说明:

  • 示例系统:Ubuntu 64位
  • 示例组件:grafana

Ubuntu的systemctl命令的systemd文件一般存储于以下目录:

代码语言:bash
复制
cd /usr/lib/systemd/system

第一步:进入.service文件所在路径

当我们进入该目录后,可以看到很多.service文件,后续我们需要创建所需服务的.serivce文件。

第二步:创建服务文件

代码语言:bash
复制
vi grafana.service

需要写入以下内容:

代码语言:bash
复制
[Unit]
Description=Start-up grafana service
After=network.target

[Service]
Type=simple
WorkingDirectory=/data/grafana-v11.0.0
ExecStart=/data/grafana-v11.0.0/bin/grafana-server
StandardOutput=file:/data/grafana-v11.0.0/grafana.log
StandardError=file:/data/grafana-v11.0.0/grafana-error.log
Restart=always

[Install]
WantedBy=multi-user.target

然后:wq进行保存。

主要参数说明:

Description:主要填写服务的介绍,表明该服务的用途。

WorkingDirectory:启动命令的工作路径,一般配置为组件所在的安装路径。

ExecStart:具体的启动命令,如果单独配置命令,系统无法解析时,就需要添加绝对路径,便于systemctl在管理时能够找到该命令。

StandardOutput:服务运行时日志的输出路径。

StandardError:服务运行时错误日志的输出路径。这里将错误日志与正常运行日志分开主要是为了当服务报错时,排查问题方便。

Restart:这里我们配置always,避免由于机器重启或其他原因导致服务挂掉,而无法被自动拉起。

第三步:执行systemctl daemon-reload

执行该命令的主要作用是重新加载系统管理守护进程(systemd)的配置文件。因为我们这里已经创建了grafana.service文件。

第四步:启动服务

当我们进行完前置步骤后,就可以使用systemctl命令来对我们安装的服务进行管理。

代码语言:batch
复制
#启动服务
systemctl start grafana.service
#停止服务
systemctl stop grafana.service
#重启服务
systemctl restart grafana.service

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • systemctl命令介绍
  • systemctl命令运行原理
  • 环境说明:
  • 第一步:进入.service文件所在路径
  • 第二步:创建服务文件
  • 第三步:执行systemctl daemon-reload
  • 第四步:启动服务
相关产品与服务
Grafana 服务
Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档