当特定的systemd服务停止时,如何确保遵循特定的订单?我有几个运行的系统服务/单元,但在各种已安装的分区上使用资源.使用自定义服务安装和卸载这些分区.在自定义安装程序停止之前,需要以特定顺序停止正在运行的服务(例如ProgramA.service& ProgramB.service).

设置启动依赖项非常简单,但我无法弄清楚如何确保在挂载服务停止之前服务已停止.

mountCustomPartitions.service

[Unit]

Description=My Custom Partition Mounting Service

[Service]

Type=oneshot

RemainAfterExit=yes

ExecStart=/usr/bin/mountCustomPartitions.sh mount

ExecStop=/usr/bin/mountCustomPartitions.sh unmount

[Install]

WantedBy=multi-user.target

ProgramA.service

[Unit]

Description=My Generic Program A Service

Wants=mountCustomPartitions.service

After=mountCustomPartitions.service

[Service]

Type=simple

ExecStart=/usr/bin/ProgramA

[Install]

WantedBy=multi-user.target

ProgramB.service

[Unit]

Description=My Generic Program B Service

Requires=ProgramA.service

Wants=mountCustomPartitions.service

After=mountCustomPartitions.service ProgramA.service

[Service]

Type=simple

ExecStart=/usr/bin/ProgramB

[Install]

WantedBy=multi-user.target

在上面的场景中,mountCustomPartitions.service必须在程序服务之前启动,但也必须在它们之后停止.如果mountCustomPartitions.service被显式停止,那么它应该导致其他人也停止(但必须等待它们停止).我还需要确保ProgramB在ProgramA之后启动,但也在ProgramA之前停止.希望这不是太混乱.

我能想到的唯一解决方案是让每个服务都有一个ExecStop行,为特定服务执行systemctl stop [service]命令,该服务必须在停止之前停止.我遇到的问题是我实际上目前有六个服务使用已安装的分区,必须在尝试卸载之前停止.在这六个中,有些需要按特定顺序停止.由于这是在商业产品中使用,我希望有一个更清洁的解决方案.

怎么终止linux的次序运行程序,linux – 如何按特定顺序停止systemd服务相关推荐

  1. linux下软件编译终止,[2018年最新整理]linux下编译运行程序命令大全.ppt

    [2018年最新整理]linux下编译运行程序命令大全 1. 项目课题引入 2. Vi编辑器的使用方法 3. Linux中C语言程序的编辑 4. Linux中C语言程序的运行 5. 现场演示案例 课题 ...

  2. Linux 下后台运行程序,查看和关闭后台运行程序(转载)

    1.运行.sh文件 直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令. (1)&命令 功能:加在一个命令的最后,可以把这 ...

  3. linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间

    1 linux上根据运行程序的进程号,查看程序所在的绝对路径 1.如下,我想查看python 25_run_train_tripletloss_sknet_8w_offline_c_plus.py 这 ...

  4. 在Red Hat Linux中自动运行程序

    在Red Hat Linux中自动运行程序 1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常 ...

  5. red hat linux怎么运行,Red Hat Linux中自动运行程序

    1.开机启动时自动运行程序 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init.init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /et ...

  6. Linux命令--定时运行程序(脚本)--方法/实例

    原文网址:Linux命令--定时运行程序(脚本)--方法/实例_IT利刃出鞘的博客-CSDN博客 简介 说明         本文介绍Linux如何定时运行程序. 概述 at命令是一次性定时计划任务, ...

  7. linux无密码sudo,在Linux系统中运行没有sudo密码的特定命令

    本文介绍在Linux操作系统中运行没有sudo密码的特定命令的方法. 背景 我在AWS上部署了Ubuntu系统上的脚本,此脚本的主要目的是检查特定服务是否以固定间隔运行(确切地说每隔一分钟),并且如果 ...

  8. 如何在Linux实现自动运行程序

    1.开机启动时 Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init. init根据配置文件继续引导过程,启动其它进程.通常情况下,修改放置在 /etc/rc或 /etc/rc. ...

  9. linux远程升级运行程序,运用RedHat的Kickstart升级Linux系统方法

    运用RedHat的Kickstart升级Linux系统方法 本文简要地介绍了使用 Red Hat Linux的 Kickstart 及网络安装功能方便快捷地升级己有 Linux 系统,文中的例子是从 ...

最新文章

  1. EditPlus 更新到 v2.31 Build 488(附下载)
  2. 实用ExtJS教程100例-004:等待对话框Ext.MessageBox.wait
  3. 攻防世界Reverse第十题getit
  4. Python描述性统计示例
  5. Centos 的inotify和rsync文件实时同步
  6. 3_03 蛇形填数(数组)
  7. https://github.com/fbs/el7-bpf-specs
  8. 亚马逊出的平板电脑_亚马逊发布新Fire HD 8系列平板电脑,90美元起
  9. Facebook的体系结构分析---外文转载
  10. 【java学习之路】数据库连接JDBC
  11. 为什么使用 adapter模式
  12. 全国道路运输管理人员考试多选练习题库
  13. 投稿Springer旗下某中科院1区TOP期刊时间记载
  14. 新版TCGA的突变SNP数据添加临床信息
  15. 面向对象之多态以及进阶
  16. WMS智能仓储系统——保姆式服务系统
  17. php携程 线程,php 如何获取这个携程页面的数据
  18. NGINX配置以及优化
  19. 五十种语言的“圣诞快乐”(上):分析与实现
  20. CC攻击和DDoS攻击的区别是什么

热门文章

  1. GitHub 一周热点速览:手撕 LeetCode 一日 Star 破两千
  2. 小米将开源进行到底!
  3. @程序员,你知道大厂是如何招聘到优秀项目经理的吗?
  4. 惠普往事:全球最大的 PC 制造商炼成记!| 极客头条
  5. 小程序多端框架全面测评 | 程序员硬核评测
  6. 调查全球 98,000 名程序员发现,PHP 遭厌弃,前端岗已饱和!
  7. “离开 360 时,它只给了我一块钱”
  8. 寒冬已至?四面楚歌的 Android 工程师该何去何从?
  9. 如何用 Python 从 0 开始创建一个区块链?
  10. 杠上谷歌,微软利用人工智能加码必应搜索的市场竞争力