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

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • [Wind2]windows 下的进程托管服务
未分類
30 5 月 2020

[Wind2]windows 下的进程托管服务

[Wind2]windows 下的进程托管服务

資深大佬 : ragnaroks 62

https://github.com/ragnaroks/Wind2

由于种种原因,我需要将某个可执行文件作为服务运行,并且能随时控制运行与否
这期间找了一些解决方案,比如 srvany/nssm/srvWrap 等,但是都不满意
于是我产生了写一个类似于 linux 下的 systemd 的项目的想法( https://www.v2ex.com/t/472963 )

这个想法转化为代码后,就是 Wind 项目了,Wind 是一个 Win32GUI 应用程序,作为第一启动项启动后,拉起其它被托管的应用程序,并且可以在图形界面上随时控制

但是,实际使用一年多以后,发现还是有很多问题,比如类似 v2ray 的应用程序,我想要它在登录会话之前就启动,又比如 syncthing,我想要它在开机一定时间之后再启动,以免过早占用大量磁盘 IO

于是有了 Wind2,只有控制台应用程序,(强烈建议)可注册为 Windows 服务运行,达到了开机就托管的目的,且加入了自启延迟,可简单的对托管单元进行排序,比如开机 3 秒后启动 v2ray,然后 30 秒后启动 syncthing,syncthing 就可以使用 v2ray 提供的代理进行同步

大佬有話說 (11)

  • 資深大佬 : Greenm

    这个需求蛮常见的,终于有人做了

  • 資深大佬 : Remember

    好像不支持启动多个实例? 还要先等自己启动了然后才能按照配置依次启动托管的程序,好像还是少了点味道,毕竟什么只是一个普通的服务,很难控制什么时候能启动.

    另外感觉是不是还是做一个托盘图标才可以方便管理托管的程序.

    这需求其实还是很常见的, 很多 go 写的小程序,只有一个命令行,用这个管理确实方便了不少

  • 資深大佬 : geelaw

    随便看了一下代码,有很多问题:

    1. 大多数程序都不是为服务设计的,以服务启动这些程序会带来无数个安全隐患,并且很多程序以服务运行的时候会崩溃或者产生令人意外的效果,实用性和安全性都很值得怀疑。
    2. 看起来主并不知道 IDisposable 成语的用法。
    3. 为什么代码的格式化这么诡异?

  • 主 資深大佬 : ragnaroks

    @Greenm
    等等党大成功

    @Remember
    是的,设计原理就是把某个控制台应用程序(Wind)注册为系统服务,然后去拉起配置单元;
    自启单元可以配置延迟时间,我猜你要的是 systemd 的依赖链,这个暂时没有计划,因为确实没有这样的需求;
    托盘我猜你指定是 GUI 图形界面,Wind1 是这样做的,但 Wind2 只有服务主机,有计划中的网页图形界面,还没开始做,这部分项目的 readme 有提及;

    @geelaw
    1.安全隐患 readme 已提及,需要使用者自行取舍,后期会加入指定用户权限运行;
    2.IDisposable 是故意的,如果一个 class 理论上可以被 dispose,那么我就会为他实现 IDisposable,即使实际上可能根本用不到;
    3.因为没用格式化,大部分代码是记事本写的,可读性确实欠佳

  • 主 資深大佬 : ragnaroks

    @geelaw 忘了补充: 如果用微软的标准来说,我的代码风格是 AntiMS 的

  • 資深大佬 : hljjhb

    比 WinSW 或 nssm 有什么优势吗

  • 資深大佬 : imn1

    non-sucking service manager (NSSM)

  • 主 資深大佬 : ragnaroks

    @hljjhb 单机管理的话应该是没有的,甚至还有劣势,比如目前不支持自定义用户,需要 runtime 等

  • 主 資深大佬 : ragnaroks

    @imn1 ?

  • 資深大佬 : imn1

    @ragnaroks
    你不知道 nssm ?

    另外主所说的计划任务都可以做,只是没有 GUI 和实时监控,如果有监控程序是否停止的话倒不算造轮子

  • 主 資深大佬 : ragnaroks

    @imn1 Ctrl+F => “nssm”

文章導覽

上一篇文章
下一篇文章

AD

其他操作

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

51la

4563博客

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