类似windows控制台的文本输出窗口_Windows 上快速将一个控制台程序做成Windows服务...

需求

有时候,我们有一个控制台应用程序(exe),双击启动后就能执行某项特定的功能,比如一些定时处理程序,后台监测程序等,但黑色的窗口关闭后应用程序就结束了,比如小编这里使用asp.net core 编写的一个网站,publish后输出一个exe控制台应用程序WebApplication.exe:

c28b4cbc567c3b48ca4b87f72a327fd6.png

这时打开浏览器,输入http://localhost:5000 就能访问到网站了:

f17eb5e3393379725d7d8cbe84236610.png

但当我们关闭黑窗口时应用程序结束。

在Windows上应用程序可以无窗口以服务方式运行,以服务方式运行有以下优点:

  • 可以设定随操作系统自启动
  • 可以静默运行

一般地,大家可能想到自己编写一个windows服务程序,安装服务不就可以了吗,但假设这个应用程序不是自己编写的呢?亦或者在开发阶段为了方便调试想以命令行方式运行,交付给客户以windows服务方式运行,怎么办呢?

解决

WinSW—一款开源的很轻量,支持配置的可将自定义进程托管为windows服务的应用程序,github地址为:https://github.com/kohsuke/winsw 具体大家可以进主页看看Readme.

  • 首先在官方下载该程序:
ffb8e86d5a9c76e5d5c8516aa31c0f32.png

下载界面

  • 重命名WinSW.NET4.exe 和 sample-minimal.xml,名称保持一致,如 MyWebApp.exe 和MyWebApp.xml, 并将其放在控制台程序工作目录:
da976c5b938d99fd0fd71190dbda8dc7.png
  • 编辑MyWebApp.xml文件:
f05db84d7281fcc007d1409b0e3cbabd.png
  • 安装服务

以管理员方式启动cmd,cd到exe所在目录,执行 MyWebApp.exe install:

4520ecbd1d1f90c339ef29af49ac33bf.png
  • 启动服务
89d55138d8773f66c6bf27a38a81de41.png
  • 测试
f17eb5e3393379725d7d8cbe84236610.png

拓展

上面以一个web应用程序为示例演示过程,那么其实借助该程序我们可以托管任何控制台程序成为一个windows服务,而且WinSW本身支持失败重启,权限配置等非常齐全的特性,如果深入使用的话可以参考 sample-allOptions.xml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值