linux 自定义服务(手工写的服务)在nginx服务启动后再启动

文章目录

    • 需求
    • 实验

需求

  • mashang.service及nginx.service两者均需要开机自动启动
  • 自定义服务mashang.service需要在nginx.service服务启动后才能启动

实验

  • 在 systemd 中,可以使用 Wants= 或 Requires= 以及 After= 指令来定义服务之间的依赖关系。
  • 仅仅使用 After= 并不会阻止 mashang.service 的启动,如果它被明确地启动或者作为一个依赖服务的一部分。如果您还想确保 mashang.service 只在 nginx.service 成功启动后才启动,您还需要使用 Wants= 或 Requires=。
vim /etc/systemd/system/mashang.service

内容如下:

[Unit]
Description=Mashang Service
After=network.target nginx.service
Wants=nginx.service[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/java/bin/mashang/service.sh start
ExecReload=/usr/local/java/bin/mashang/service.sh reload
ExecStop=/usr/local/java/bin/mashang/service.sh stop
Restart=on-failure[Install]
WantedBy=multi-user.target

解析:

  • After=network.target nginx.service 确保 mashang.service 在网络目标(network.target)和 nginx.service 都启动之后再启动。
  • Wants=nginx.service 表示 mashang.service 想要 nginx.service 也被启动,但即使 nginx.service 启动失败,mashang.service 也会尝试启动。如果您希望 nginx.service 失败时 mashang.service 也失败,您应该使用 Requires=nginx.service 代替 Wants=。
  • Wants= 和 Requires= 的主要区别在于,如果 Requires= 指定的服务启动失败,那么当前服务 mashang.service 也会被视为启动失败。而 Wants= 仅仅是表明当前服务希望另一个服务也被启动,但不会因为它启动失败而影响自己的启动结果。
sudo systemctl daemon-reload
sudo systemctl start mashang.service

如果您还想让 mashang.service 在系统启动时自动启动,并且确保它在 nginx.service 之后启动,您可以使用 enable 命令:

sudo systemctl enable mashang.service

这样,当系统启动时,nginx.service 将首先被启动,随后是 mashang.service(如果 nginx.service 启动成功)。

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

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

相关文章

C++ STL nth_element 用法

一&#xff1a;功能 将一个序列分为两组&#xff0c;前一组元素都小于*nth&#xff0c;后一组元素都大于*nth&#xff0c; 并且确保第 nth 个位置就是排序之后所处的位置。即该位置的元素是该序列中第nth小的数。 二&#xff1a;用法 #include <vector> #include <a…

语音特征提取:从预处理到声学特征

语音特征提取&#xff1a;从预处理到声学特征 语音特征提取是语音处理和识别的关键步骤&#xff0c;它涉及从原始语音信号中提取有用的信息&#xff0c;以便于后续的分析和处理。本文将详细介绍语音特征提取的各个步骤&#xff0c;包括预处理、短时傅里叶变换、听觉特性、线性…

码蹄集部分题目(2024OJ赛7.17-7.21;并查集+最小生成树+线段树+树状数组+DP)

1&#x1f40b;&#x1f40b;供水管线&#xff08;钻石&#xff1b;并查集最小生成树&#xff09; 时间限制&#xff1a;1秒 占用内存&#xff1a;128M &#x1f41f;题目思路 该题目就是最小生成树的问题。我们使用选边的方法&#xff0c;每次选取最小边加入&#xff0c;用…

Kettle 登录示例 POST请求

登录接口是post请求&#xff0c;组装Body为json字符串 var body "{\"username\":\""username"\",\"password\": \""password"\",\"code\":\""verification"\",\"uuid\…

小阿轩yx-高性能内存对象缓存

小阿轩yx-高性能内存对象缓存 案例分析 案例概述 Memcached 是一款开源的高性能分布式内存对象缓存系统用于很多网站提高访问速度&#xff0c;尤其是需要频繁访问数据的大型网站是典型的 C/S 架构&#xff0c;需要构建 Memcached 服务器端与 Memcached API 客户端用 C 语言…

【C++】内存管理的深度解析与实例

C内存管理的深度解析与实例 一、C内存管理的基本概念二、C内存分配方式1. 静态内存分配2. 动态内存分配 三、C内存管理的常见问题及解决策略1. 内存泄漏2. 堆内存碎片化3. 栈溢出 四、C内存管理的最佳实践1. 使用RAII&#xff08;Resource Acquisition Is Initialization&#…

pytorch学习(十四)层结构容器

本篇文章列举了nn.Sequential&#xff0c;nn.ModuleList&#xff0c;nn.ModuleDict三个容器的使用方法&#xff0c;并且还学习了一种使用类封装模块的方法。通过本篇博客的学习&#xff0c;你将学习到三个容器和使用类构建容易的方法。 1.nn.Sequential 第一种方法直接列出每…

linux shell(上)

几个常用的shell命令 file 命令是一个方便的小工具&#xff0c;能够探测文件的内部并判断文件类型 file .bashrc # 检查文件 file Document # 检查目录df命令可以方便地查看所有已挂载磁盘的使用情况 du 命令可以显示某个特定目录&#xff08;默认情况下是当前目录&#xff0…

大模型涉及到的知识点

1. 基础数学和统计学 **线性代数&#xff1a;**矩阵运算、特征值与特征向量、奇异值分解等。 **微积分&#xff1a;**导数和积分、链式法则、梯度下降法等。 **概率与统计&#xff1a;**概率分布、期望与方差、最大似然估计、贝叶斯定理等。 2. 机器学习基础 监督学习&#xf…

【BUG】已解决:python setup.py bdist_wheel did not run successfully.

已解决&#xff1a;python setup.py bdist_wheel did not run successfully. 目录 已解决&#xff1a;python setup.py bdist_wheel did not run successfully. 【常见模块错误】 解决办法&#xff1a; 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主…

在Django项目中创建Django App

进入code虚拟环境 .\.venv\Scripts\activate创建demoapp python demo/manage.py startapp demoapp

Neuralink首款产品Telepathy:意念控制设备的革新与挑战

近年来&#xff0c;科技领域不断涌现出令人惊叹的突破&#xff0c;其中尤以脑机接口&#xff08;BCI&#xff09;技术为代表。近日&#xff0c;Elon Musk的Neuralink公司发布了其首款脑机接口产品Telepathy&#xff0c;引发了广泛关注。本文将详细探讨Telepathy的功能、技术原理…

十、继承

十、继承 继承的基本概念使用继承的原因继承的用途继承的注意事项继承的基本使用定义基类定义派生类使用派生类的对象注意事项示例&#xff1a;构造函数和析构函数的调用 继承基本规则继承方式注意事项示例 赋值兼容原则继承中的同名成员成员变量成员函数总结 继承中的静态成员…

PCIe总线-RK3588 PCIe平台驱动分析(十)

1.简介 RK3588 PCIe RC和EP使用同一个平台驱动&#xff0c;其主要的作用是解析设备树中的资源、初始化中断、使能电源、初始化PHY、使能时钟和释放复位&#xff0c;然后根据compatible属性初始化RC或者EP驱动。 2.入口 平台驱动的定义如下&#xff0c;当compatible属性为&qu…

【hadoop大数据集群 1】

hadoop大数据集群 1 文章目录 hadoop大数据集群 1一、环境配置1.安装虚拟机2.换源3.安装工具4.安装JDK5.安装Hadoop 一、环境配置 折腾了一下午/(ㄒoㄒ)/~~ 1.安装虚拟机 参考视频&#xff1a;https://www.bilibili.com/video/BV18y4y1G7JA?p17&vd_sourcee15e83ac6b22a…

C语言:静态库和动态(共享)库

相关阅读 C语言https://blog.csdn.net/weixin_45791458/category_12423166.html?spm1001.2014.3001.5482 在软件开发中&#xff0c;库&#xff08;Library&#xff09;是一个至关重要的概念。它们是由函数和数据的集合构成&#xff0c;用于实现特定的功能&#xff0c;供其他程…

使用Vuepress搭建个人网站

网站地址&#xff1a;bloggo.chat

vue中怎么改变状态值?

在Vue中&#xff0c;状态值通常指的是组件的data函数返回的对象中的属性&#xff0c;或者是Vuex状态管理库中的状态。以下是在Vue中改变状态值的几种常见方法&#xff1a; 1. 直接在组件内部改变状态值 在Vue组件中&#xff0c;你可以直接在methods中改变data函数返回的对象中…

MySQL学习作业二

作业描述 SQL语言 建库&#xff0c;使用库 mysql> create database mydb8_worker;#新建库mysql> use mydb8_worker; 建表&#xff0c;查看表 #建表 mysql> create table t_worker(department_id int(11) not null comment部门号,worker_id int(11) primary key no…

无人机足球比赛技术详解

一、无人机类型参数 在无人机比赛中&#xff0c;不同类型的无人机因其独特的参数配置而表现出不同的性能。这些参数包括但不限于&#xff1a; 1. 机体尺寸&#xff1a;小型无人机适合室内或狭窄空间比赛&#xff0c;而大型无人机则更适用于室外大场地赛事。 2. 动力系统&…