【发布时间】:2012-07-30 08:19:47
【问题描述】:
我创建了一个工具,它提供与 Microsoft 的 PSExec 工具类似的功能,但它是通过 Java 实现的(没有“Exec”命令)https://dev.c-ware.de/confluence/display/PUBLIC/JRWShell+-+A+Java+library+for+remote+controlling+a+windows+shell
我的问题是我的库通常会自动停止并卸载它创建的服务,但如果通信失败,这不会自动发生。我希望动态创建的服务启动和侦听连接并在连接关闭后终止。理想情况下,我希望 Windows 服务自行终止并自动卸载,但我认为如果不使用自动清理已停止服务的第二个看门狗服务,则可能无法自行卸载。
所以我的问题是:服务是否可以自行卸载?如果是,这是如何完成的,如果不可能,我怎样才能让服务自行停止?
【问题讨论】:
-
我从未尝试过,但是从服务本身调用 DeleteService 函数时,没有明显的原因无法工作。服务停止自己是微不足道的,它只是做与收到停止请求时完全相同的事情,即调用 SetServiceStatus 并将 dwCurrentState 设置为 SERVICE_STOPPED。
-
我一定会尝试一下...感谢您的指点...我是 Java 人...不是 .Net 人,所以我不习惯使用 API ;- )
标签: .net windows windows-services