跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 客户端软件一般是通过什么方式来实现在线升级的?
未分類
30 4 月 2020

客户端软件一般是通过什么方式来实现在线升级的?

客户端软件一般是通过什么方式来实现在线升级的?

資深大佬 : monkeyWie 66

据我了解有父子进程模式,升级完将子进程程序文件替换,然后再由父进程关闭旧的子进程并再运行刚刚替换的子进程文件,也就是说父进程只是一个壳,所有的逻辑都是在子进程上实现。

不知道除了这种方式还有没有什么方式可以实现,比如单进程下的在线升级是否可行?

大佬有話說 (2)

  • 資深大佬 : lff0305

    可行也是你说的那种况的变种,因为这个进程已经在运行,那么必须退出才能对其覆盖( Win 上,可能 Linux 更简单),总之需要一个 loader/wrapper 这类东西。这个 loader 可能是持久的,也可能是发现有升级包之后临时释放的(升级后自动删掉)。比如下面的过程:
    1. main.exe 发现网上有升级包,下载;
    2. 释放一个临时的 loader 并运行 (设置 loader 进程的父进程为 null,防止 main 退出 loader 也退出)。main.exe 退出
    3. loader 等待 main.exe 退出
    4. loader 用下载的升级包 升级
    5. loader fork 新的 main.exe 进程 (设置新的 main.exe 进程的父进程为 null,防止 loader 退出 main 也退出)
    6. loader 退出。

  • 主 資深大佬 : monkeyWie

    @lff0305 这个 loader 有什么好的实现方法吗,从 main 进程存一个 loader 文件临时写出来吗

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具