描述

正常我们启动某一个应用时,会新建一个sh脚本,每次调用起来和设置开机自启会非常麻烦
所以把这个启动文件制作成系统服务,每次启动只需要输入以下命令就可以启动

systemctl start xxx

也可以设置开机自启

systemctl enable xxx

接下来我拿Redis来演示,我用的Redis是离线软件包解压后的。

操作

1、进入到Redis目录,确保你制作的Redis脚本能够正常执行。
在这里插入图片描述
脚本名字为 startRedis.sh 脚本内容:

#!/usr/bin/env bash
src/redis-server ./redis.conf

在这里插入图片描述
2、创建 systemd 服务文件

# vi /etc/systemd/system/服务名称.service

例如:

vi /etc/systemd/system/redisServer.service

注意:后面的文件名,将是启动命令时用到的名称。

3、写入以下内容模板

[Unit]
# 服务描述
Description=这是一个服务描述,可以描述此服务是那个应用的
# 可选:替换为你的文档地址
# Documentation=https://your-docs-url.comAfter=network.target nss-lookup.target
Wants=network.target[Service]
Type=simple
# 建议使用专用用户运行,提高安全性(先创建用户: sudo useradd -r -s /bin/false cloudadmin)
# User=cloudadmin
# Group=cloudadmin# 工作目录,这里设置后,脚本中的相对路径就基于此目录
WorkingDirectory=/opt/redis/redis-3.2.11# 启动命令(使用绝对路径更可靠)
ExecStart=/opt/redis/redis-3.2.11/startRedis.sh# 停止命令:向Java进程发送SIGTERM信号实现优雅关闭
ExecStop=/bin/kill -15 $MAINPID# 如果应用无法正常停止,在90秒后强制杀死进程
TimeoutStopSec=90# 崩溃后自动重启
Restart=on-failure
RestartSec=10# 防止无限重启(5分钟内重启超过5次则放弃)
StartLimitInterval=300
StartLimitBurst=5# 环境变量(可选)
# Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk"
# Environment="SPRING_PROFILES_ACTIVE=prod"# 日志配置
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=cloud-admin# 安全限制(可选)
LimitNOFILE=65536[Install]
WantedBy=multi-user.target

4、重载刷新服务配置

systemctl daemon-reload

5、测试

启动服务

systemctl start redisServer

查看服务状态

systemctl status redisServer

在这里插入图片描述

重启服务

systemctl restart redisServer

停止服务

systemctl stop redisServer

设置开机自启

systemctl enable redisServer

查看开机是否自启

systemctl is-enabled redisServer

在这里插入图片描述

查看完整日志

journalctl -u redisServer

在这里插入图片描述

查看最近100条日志

journalctl -u redisServer -n 100

在这里插入图片描述
实时追踪日志

journalctl -u redisServer  -f

在这里插入图片描述

更详细的配置模板

[Unit]
Description=Cloud Admin Application Service
After=network.target syslog.target
Requires=network.target[Service]
Type=simple
WorkingDirectory=/opt/cloud-admin# 直接使用java命令,避免额外脚本
ExecStart=/usr/bin/java -Dspring.config.location="config/application.yml,config/application-druid.yml" -jar cloud-admin.jar
ExecStop=/bin/kill -15 $MAINPID# 在启动前做一些检查(可选)
ExecStartPre=/bin/sleep 3
ExecStartPre=/bin/echo "Starting Cloud Admin Service"SuccessExitStatus=143  # Tomcat/JVM 通常以此状态退出# 资源限制(根据你的服务器配置调整)
LimitNOFILE=65536
LimitNPROC=4096Restart=on-failure
RestartSec=30# 环境文件(可以创建 /etc/sysconfig/cloud-admin)
EnvironmentFile=-/etc/sysconfig/cloud-admin[Install]
WantedBy=multi-user.target

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/920432.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/920432.shtml
英文地址,请注明出处:http://en.pswp.cn/news/920432.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI应用开发中的安全最佳实践详解

AI应用开发中的安全最佳实践详解 随着大语言模型(LLM)及相关API服务的广泛应用,内容安全成为开发者不可忽视的重要议题。本文将系统梳理在AI应用开发过程中保障安全的技术手段与最佳实践,并结合像 https://api.aaaaapi.com 这样成…

介绍智慧城管十大核心功能之一:风险预警系统

我们的风险预警系统系统包含:排水安全运行预测预警、环卫设施安全运行预测预警、内涝安全运行预测预警、路面塌陷安全运行预测预警、人员密集场所安全运行预测预警及运行统计分析。1. 排水安全运行预测预警1) 排水设施监测 a) 实时数据采集 支持实时采集排水管网的水…

初识Linux · 文件系统

目录 前言: 简单理解文件系统 细节理解 前言: 前文我们介绍了磁盘,介绍磁盘的原因是因为我们需要在理解文件系统之前,通过磁盘的了解,介绍一些文件相关的内容,比如文件是如何在磁盘里面存储的&#xff…

前端数据库 IndexedDB

前端数据库 IndexedDB IndexedDB核心概念解析1. 数据库(Database)2. 对象存储(Object Store)3. 索引(Index)4. 事务(Transaction)5. 游标(Cursor) IndexDB的使…

Cesium入门教程(二)环境搭建(HTML版)

一、快速开始&#xff08;无需安装依赖&#xff09; 1. 创建HTML文件 新建一个 .html 文件&#xff08;如 cesium-demo.html&#xff09;&#xff0c;粘贴以下代码&#xff1a; <!DOCTYPE html> <html> <head><title>Cesium Quick Start</title&g…

数据分析学习笔记4:加州房价预测

一、实验概述本实验旨在利用机器学习技术&#xff0c;基于加州房价数据集&#xff08;California Housing Dataset&#xff09;构建一个房价预测模型。实验涵盖了从数据加载、探索性数据分析&#xff08;EDA&#xff09;、数据预处理到模型构建与评估的完整流程。核心任务是利用…

openEuler Embedded 的 Yocto入门 : 2. 构建一个Hello,world!

获取BitBake 官方下载 git clone https://git.yoctoproject.org/poky cd poky/bitbake国内镜像下载&#xff08;推荐&#xff09; git clone https://gitee.com/openeuler/yocto-poky.git -b v3.3.6 cd yocto-poky/bitbake配置BitBake环境 export PATH/path/to/bitbake/bin:$PA…

人工智能物联网(AIoT)的技术逻辑、核心价值与典型应用场景解析

一、AIoT 技术&#xff1a;从 “连接” 到 “智能” 的底层逻辑 在企业数字化转型过程中&#xff0c;“数据” 常被视为核心资产&#xff0c;但如何让海量数据产生实际价值&#xff0c;却成为多数组织的难题。根据 Gartner 2024 年发布的调查数据&#xff0c;87% 的组织商业智…

SpringBoot系列之实现高效批量写入数据

Spring Boot 实现高效批量插入数据的实践指南 在实际开发中&#xff0c;我们经常会遇到需要批量插入大量数据到数据库的场景。如果使用传统的单条插入方式&#xff0c;不仅效率低下&#xff0c;还会给数据库带来巨大压力。本文将介绍如何使用 Spring Boot 实现高效 批量数据插入…

SQL语言基础知识(2)

在学会创建数据库之后&#xff0c;在数据库中需要创建表&#xff08;实体以表的形式存在&#xff09;&#xff0c;以及对表中存储的数据记录进行定义&#xff0c;相当于 Java 语言中对类编写其属性。在定义前我们需要了解 SQL 语言有哪些数据类型。一、数据类型1.1 数据值类型1…

响应式编程框架Reactor【1】

文章目录一、Reactor 框架概述与理论基础1.1 响应式编程&#xff08;Reactive Programming&#xff09;是什么&#xff1f;1.2 Reactive Streams 规范1.3 响应式编程与 Reactor 的诞生1.4 Reactor核心特性1.5 Reactor与其它响应式框架比较二、Reactor核心类型2.1 Reactor 核心概…

【LeetCode】29. 两数相除(Divide Two Integers)

文章目录29. 两数相除&#xff08;Divide Two Integers&#xff09;1. 题目重述与约束解析2. 算法选择与总体设计3. 核心难点与关键技巧4. 解法一&#xff1a;快倍增&#xff08;重复加倍减法&#xff09;4.1 思路4.2 流程图4.3 正确性要点5. 解法二&#xff1a;位移长除法&…

智能物联网(AIoT)核心技术落地路径与企业数字化转型适配方案

一、行业现状&#xff1a;AIoT 落地潜力与企业转型痛点并存根据中国信通院《2023 年中国物联网发展白皮书》数据&#xff0c;截至 2023 年&#xff0c;我国物联网设备连接数已突破 300 亿&#xff0c;庞大的设备基数为企业数字化转型奠定了技术基础。但与之形成鲜明对比的是&am…

前端文件下载的三种方式:URL、二进制与 Base64 的深度解析

前言在 Web 应用开发中&#xff0c;文件下载是一个常见的功能需求。从简单的图片保存到复杂的报表导出&#xff0c;前端开发者需要根据后端返回的数据格式选择合适的处理方式。本文探讨三种主流的文件下载方式 —— 基于 URL、二进制数据和 Base64 编码的实现原理、区别对比及通…

B站 XMCVE Pwn入门课程学习笔记(8)

这个视频讲的比较难&#xff0c;我花了比较长时间来分析&#xff0c;甚至一个点反复很多次&#xff0c;这也是在学PWN的过程中不可避免的&#xff0c;需要坚持和毅力pwn3:没有system&#xff0c;通过ROP调用write的plt入口&#xff0c;执行write函数&#xff0c;并且将gots里的…

AMGCL介绍和使用

文章目录一、AMGCL 简介1.1 什么是 AMG&#xff1f;1.2 AMGCL 特点二、安装与配置2.1 获取源码2.2 编译依赖&#xff08;可选&#xff09;三、基本使用示例3.1 构造稀疏矩阵&#xff08;以 1D Poisson 为例&#xff09;四、核心组件介绍4.1 后端&#xff08;Backend&#xff09…

AI解决生活小事系列——用AI给我的电脑做一次“深度体检”

哈喽&#xff0c;大家好&#xff0c;这里是Ai极客团长&#xff0c;我打算做一个用AI解决生活实际问题的系列专栏。 决定做这个系列的初衷很简单&#xff1a;现在打开手机、电脑&#xff0c;到处都是 "AI 改变世界" 的宏大叙事&#xff0c;但对普通人来说&#xff0c…

JavaWeb 30 天入门:第二十一天 ——AJAX 异步交互技术

在前二十天的学习中&#xff0c;我们掌握了 JavaWeb 开发的核心技术&#xff0c;包括 Servlet、JSP、会话管理、过滤器、监听器、文件操作、数据库交互、连接池、分页与排序等。今天我们将学习一项彻底改变 Web 应用交互方式的技术 ——AJAX&#xff08;Asynchronous JavaScrip…

从枯燥C++到趣味音乐:我的Windows系统底层探索之旅

一段穿越计算机抽象层次的旅程&#xff0c;从高级语言到底层硬件&#xff0c;探索代码如何创造美妙旋律第一章&#xff1a;初学C的枯燥与灵感闪现 当我第一次打开《C Primer Plus》这本厚重的教程时&#xff0c;面对那些晦涩的语法规则和抽象概念&#xff0c;确实感到有些枯燥乏…

taro+vue3+vite项目 tailwind 踩坑记,附修复后的模板源码地址

tailwind 踩坑记 这&#xff0c;是taro官网地址&#xff1a;taro引入tailwind的教程 我完全按照上面的步骤来&#xff0c;结果根本无效&#xff08;文档太过时了&#xff09; 我后来又按照 weapp-tailwindcss 的官方文档做了一番修正&#xff1a; weapp-tailwindcss Taro (所…