码农知识堂 - 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进程自己精细控制了

  • 相关阅读:
    每日一个设计模式之【适配器模式】
    linux安装activemq
    jmeter实现webservice接口测试
    Linux操作系统入门(适用java软件开发)
    揭秘C语言的心脏:深入探索指针与数组的奥秘
    Love 6 面试准备所看过的面经部分总结(C++后台开发岗位)
    【LeetCode】24. 两两交换链表中的节点
    nodejs开发的小程序 老年人健康预警系统
    一种表达了1/4的差值结构
    【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?
  • 原文地址:https://blog.csdn.net/qq_15328161/article/details/127130588
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号