systemctl 添加自定义系统服务

以 “启动、停止、重启” boa web server为例:

1. 编写系统服务脚本

        编写一个符合系统服务规范的脚本。这个脚本通常描述了服务的启动、停止、重启等行为。你可以使用shell、C、C++、Java等语言来编写这个脚本。

# boa_server_run.sh:

#!/bin/bash

set -e
cd /etc/boa
# boa服务
RADIAO_WEB_SERVER="boa"

case "$1" in
    start)
		#run boa web server
		chmod 755 $RADIAO_WEB_SERVER
		./$RADIAO_WEB_SERVER
        ;;
    stop)
        echo  "Stop ${RADIAO_WEB_SERVER}"
		killall boa
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "usage: $0 { start | stop | restart }" >&2
        exit 1
        ;;
esac

exit 0

2. 创建服务单元文件

        在/etc/systemd/system/目录下,你需要创建一个服务单元文件(通常以.service为后缀)。这个文件描述了服务的元数据和如何启动、停止、重启该服务。

# boa-server.service:

[Unit]
Description=Radio Gateway Web Server Service
After=default.target

[Service]
Type=forking
Restart=on-failure
ExecStart=/opt/boa_server_run.sh start
ExecStop=/opt/boa_server_run.sh stop

[Install]
WantedBy=default.target

         [Unit]部分描述了服务的元数据和启动顺序[Service]部分定义了如何启动服务,以及服务的重启策略。[Install]部分则描述了服务的安装信息

3. 添加执行权限

        如果你的服务脚本没有执行权限,你需要使用chmod命令为它添加执行权限。

sudo chmod 755 boa-server.service

4. 重新加载配置文件

sudo systemctl daemon-reload

5. 启用并启动服务

        使用systemctl命令来启用并启动你的自定义服务了。启用服务意味着在系统启动时自动运行它。你可以使用以下命令来启用和启动服务:

sudo systemctl enable boa-server.service

sudo systemctl start boa-server.service

        现在,你的自定义服务应该已经成功添加并启动了。你可以使用systemctl status mycustomservice.service命令来查看服务的状态。 

         测试重启boa-server.servicce:

sudo systemctl restart boa-server.service

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/664889.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈申请小程序地理位置权限的正确打开方式

小程序地理位置接口有什么功能? 这篇内容会教大家如何快速申请“获取当前的地理位置(onLocationChange)”接口,以便帮助大家顺利开通接口。以下内容是本人经历了多次的申请经历得出来的经验,来之不易,望大家…

基础—SQL—DQL(数据查询语言)分页查询

一、引言 上一篇博客学习了排序查询,这次来讲查询的最后一个部分:分页查询。 涉及到的关键字是:LIMIT 。 二、DQL—分页查询 对于分页,不管以后做的是传统的管理系统还是做互联网的项目,基本上都会遇到分页查询的操…

【C语言】常见的动态内存的错误

前言 在动态内存函数的使用过程中我们可能会遇到一些错误,这里将常见的错误进行总结。 对NULL解引用 请看以下代码: 可以看到,这时我们的malloc开辟是失败的,所以返回的是空指针NULL,而我们却没有进行检查&#xff0…

东莞酷得智能 组装机械狗电子玩具方案

这款机械狗玩具电子方案结合了现代电子技术和人工智能元素,旨在为用户提供一个高科技、互动性强的娱乐体验。通过不断的软件更新和硬件迭代,机械狗的功能将持续扩展。 一、功能特点: 1、自动巡游:机械狗能够自主在房间内巡游&am…

计算机组成原理-----实验1

实 验 报 告 实验一 基本运算器实验 1、实验目的 (一)了解运算器的组成结构; (二) 掌握运算器的工作原理; (三)熟悉运算器的数据传送通路; (四)按…

Amis源码构建 sdk版本

建议在linux环境下构建(mac环境下也可以),需要用到sh脚本(amis/build.sh)。 Js sdk打包是基于fis进行编译打包的,具体可见fis-conf.js: amis-master源码下载:https://github.com/baidu/amis g…

推荐几款优秀的文档加密软件 | 企业文件加密解决方案

在数字化时代,信息安全问题日益突出,文档加密软件成为了保护数据安全的重要手段。但是,市面上的文档加密软件种类繁多,功能各异,如何选择一款好用的文档加密软件成为了许多用户关注的焦点。本文将为大家提供一份实用的…

@Value 读取环境变量配置

在项目开发过程中,有必要使用一些灰色规则(即仅用于开发使用过程中的逻辑控制变量)。 比如,本地开发中,一些业务逻辑需要调用第三方代码,但又在本地调不通,怎么办。只能通过 if(本地开发) {mock…

手拉手springboot整合kafka发送消息

环境介绍技术栈springbootmybatis-plusmysqlrocketmq软件版本mysql8IDEAIntelliJ IDEA 2022.2.1JDK17Spring Boot3.1.7kafka2.13-3.7.0 创建topic时,若不指定topic的分区(Partition主题分区数)数量使,则默认为1个分区(partition) springboot加入依赖kafk…

HTML静态网页成品作业(HTML+CSS)——企业装饰公司介绍网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

热电子光探测器的电磁场空间分布与FDTD材料折射率的导出

仿真实例 金属薄膜中金纳米孔阵列透射与反射, 并考虑其近场电磁分布 利用脚本进行电磁场及其光学响应的可视化 设置EOT型超表面结构,以及Structure library的使用 结构的参数化扫描与结果可视化 利用脚本计算峰值增强因子 多层平面结构激发T…

Spark 核心编程之 RDD 介绍

一、Spark 分布式计算模拟 Driver 端将数据拆分成 n 个 Task 发送给 Executor,n 为 Executor 个数,Task 包含数据和计算逻辑,Executor 接收到 Task 后进行计算并将计算后的结果返回给 Driver 定义封装整体数据和逻辑的资源类 class Resource …

高性能服务器网络模型详解

1999年Dan Kegel在发表的论文中提出了The C10K problem,这篇论文对传统服务器架构处理大规模并发连接时的挑战进行了详细描述,并提出了一些解决方案和优化技术。这里的C指的是Concurrent(并发)的缩写,C10K问题是指怎么在单台服务器上并发一万…

buidldroot musl uclib库 编译

buildroot 修改 编译工具链 原本编译器相关信息: Incorrect selection of the C library buidroot编译 注意相关选项,后续使用CUSTOM TOOLCHAIN 时对应 UCLIB 能将生成IMAGE 从2.9K变为2.3K MUSL 能将生成IMAGE 从2.9K变为2.7K 变大了 arm-linux-…

【运维项目经历|025】企业高效邮件系统部署与运维项目

目录 项目名称 项目背景 项目目标 项目成果 我的角色与职责 我主要完成的工作内容 本次项目涉及的技术 本次项目遇到的问题与解决方法 本次项目中可能被面试官问到的问题 问题1:项目周期为多长时间? 问题2:服务器部署架构方式及数量…

ubuntu 18.04 ros1学习

总结了一下,学习内容主要有: 1.ubuntu的基础命令 pwd: 获得当前路径 cd: 进入或者退出一个目录 ls:列举该文件夹下的所有文件名称 mv 移动一个文件到另一个目录中 cp 拷贝一个文件到另一个目录中 rm -r 删除文件 gedit sudo 给予管理员权限 sudo apt-…

uniapp实现图片上传——支持APP、微信小程序

uniapp实现图片、视频上传 文章目录 uniapp实现图片、视频上传效果图组件templatejs 使用 相关文档: 结合 uView 插件 uni.uploadFile 实现 u-upload uploadfile 效果图 组件 简单封装,还有很多属性…,自定义样式等…根据个人所需调整 te…

DNF手游攻略:勇士进阶指南!

在即将到来的6月5日,《DNF手游》将迎来一场盛大的更新,此次更新带来了大量新内容和玩法,极大丰富了游戏的体验。本文将为广大玩家详细解析此次更新的亮点,包括新增的组队挑战玩法“罗特斯入门团本”、新星使宠物的推出、宠物进化功…

ADB日常使用命令

【ADB全称 Android Debug Bridge】 是Android SDK中的一个命令行工具adb命令可以直接操作管理Android模拟器或真实的Android设备(手机) 建立PC和模拟器连接 # 建立连接 adb connect 127.0.1: 模拟器端口号〈逍遥模拟器21503〉 # 验证是否连接成功 adb d…

NFS p.1 服务器的部署以及客户端与服务端的远程挂载

目录 介绍 应用 NFS的工作原理 NFS的使用 步骤 1、两台机子 2、安装 3、配置文件 4、实验 服务端 准备 启动服务: 客户端 准备 步骤 介绍 NFS(Network File System,网络文件系统)是一种古老的用于在UNIX/Linux主…