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 启动成功)。

相关推荐

  1. linux下python服务定时启动

    2024-07-21 09:42:03       27 阅读
  2. 定义服务启动失败

    2024-07-21 09:42:03       41 阅读
  3. 服务器启动服务总结

    2024-07-21 09:42:03       76 阅读
  4. nginx服务window开机启动

    2024-07-21 09:42:03       61 阅读
  5. 启动MySQL服务

    2024-07-21 09:42:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 09:42:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 09:42:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 09:42:03       45 阅读
  4. Python语言-面向对象

    2024-07-21 09:42:03       55 阅读

热门阅读

  1. Rust编程-类面向对象编程

    2024-07-21 09:42:03       14 阅读
  2. SQL Server高级玩法:打造数据库的自定义存储过程

    2024-07-21 09:42:03       16 阅读
  3. 运筹学:决策优化的艺术

    2024-07-21 09:42:03       15 阅读
  4. OpenCV车牌识别技术详解

    2024-07-21 09:42:03       14 阅读
  5. MySQL——索引

    2024-07-21 09:42:03       15 阅读
  6. Log4j2原理及应用详解(十三)

    2024-07-21 09:42:03       18 阅读
  7. web学习笔记(八十二)uniapp

    2024-07-21 09:42:03       19 阅读
  8. git clone/push报错:HTTP Basic: Access denied

    2024-07-21 09:42:03       17 阅读
  9. 高等数学用到的初等数学

    2024-07-21 09:42:03       16 阅读
  10. JVM 在什么情况下会触发垃圾回收?

    2024-07-21 09:42:03       16 阅读
  11. Dubbo 的本地伪装

    2024-07-21 09:42:03       18 阅读