码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • service 自我升级遇到的问题


    升级思路

    1. 服务先创建子进程执行升级脚本
    2. 脚本停止服务
    3. 脚本复制替换需要更新的文件
    4. 脚本再次启动服务

    执行起来,发现脚本停止服务后,立马跟随服务一起停止。所以只能停止服务,后续步骤无法完成。无论是linux 还是windows,都有这种问题。

    linux 和windows的服务思路

    • windows 创建一个服务进程,然后利用服务进程守护work进程
    • linux 服务进程无需创建,利用systemd守护work进程

    问题原因

    windows
    服务进程创建work进程时,一般都会创建job,同时设置JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
    效果是,只要服务进程退出,那么它创建的work进程也会全部退出,连同work进程的子进程,孙进程。。。
    脚本随着work进程一并退出的原因就在这
    其实也很好解决,利用JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK 就可以让work进程的子进程自动脱离Job,从而避免被杀
    或者创建work进程时加上JOB_OBJECT_LIMIT_BREAKAWAY_OK,work进程创建子进程(升级)的时候设定CREATE_BREAKAWAY_FROM_JOB,也可以脱离Job避免被杀

    linux
    systemd(1)创建work进程时,默认是control-group,和windows的job作用类似
    效果是,只要work进程退出,那么它创建的子进程,孙进程。。。也会全部退出
    解法也很简单
    设置 KillMode=process 就可以让work进程的子进程避免被杀
    但是work的子进程管理就需要work进程自己精细控制了

  • 相关阅读:
    不重复数字
    MySQL 数据库基础知识(系统化一篇入门)
    springboot基于Java的多元化智能选课系统毕业设计源码040909
    Linux之线程同步和生产者消费者模型
    (未整理完)十月每日一题打卡
    vue3使用vue-virtual-scroller虚拟滚动遇到的问题
    Proteus仿真--一种智能频率计的设计与制作(AVR单片机+proteus仿真)
    car包recode函数多分类变量的重新编码
    Ubuntu18.04添加rc.local启动项
    SpringCloud框架(一):环境搭建 生产和消费 RestTemplate,底层源码解读
  • 原文地址:https://blog.csdn.net/qq_15328161/article/details/127130588
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号