前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows服务小结 2

Windows服务小结 2

作者头像
小蜜蜂
发布2019-09-09 17:21:03
4360
发布2019-09-09 17:21:03
举报
文章被收录于专栏:明丰随笔明丰随笔

如何安装一个Windows服务?

如何卸载一个Windows服务?

如何使用参数控制服务的运行方式?

本文主要讨论上面三个问题。因为在我们开发完一个服务之后,我们需要把它安装在不同的环境中,以及如何卸载它。

在某些时候,我们还想快速运行和调试一下程序。这些都是我们开发人员所面临的问题,通过本文,我们就会知道这些答案。

如何安装一个Windows服务?

使用cmd命令行:

代码语言:javascript
复制
sc create MyService binPath="%~dp0WindowsSvcDemo.exe"

通过上面命令就可以创建MyService windows服务了。运行结果如下:

打开Services窗口,我们就可以在服务列表里面找到刚刚创建的MyService服务了,我们可以启动和停止服务。

对于cmd命令行语句,我们可以保存在install.bat文件里面,然后提交到git中管理。

如何卸载一个Windows服务?

使用cmd命令行:

代码语言:javascript
复制
sc delete MyService

无论MyService服务是正在运行还是停止状态,这个命令都可以执行成功,区别是服务如果正在运行,这个服务不会被立刻删除掉,而是在这个服务停止的时候,自动从服务列表中删除。

对于cmd命令行语句,我们可以保存在uninstall.bat文件里面,然后提交到git中管理。

如何使用参数控制服务的运行方式?

我们console类型的程序一般有一个Program类,并包含一个Main函数,它的签名如下:

代码语言:javascript
复制
static void Main(string[] args);

我们可以通过判断主函数的参数,来快速调试一些不同case。

代码大致可以这样写:

代码语言:javascript
复制
var engineMode = IsEngineMode(args);
var consoleMode = IsConsoleMode(args);

if (engineMode)
{
  RunEngineMode(Container);
  return;
}
if (consoleMode)
{
  RunConsoleMode(servicesToRun);
}
else
{
  ServiceBase.Run(servicesToRun);
}

思路很简单就是通过主函数的输入参数来运行不同的分支代码。对于这一段实例代码,它想表达的是,一共有三种方式来运行这个程序:

1. engineMode

2. consoleMode

3. windows服务

对于使用windows服务的方式,本文前面的内容已经讲过了,那如何使用engineMode或consoleMode方式来运行程序呢?

我们假设主函数的参数传入的是engine,那就按照engineMode方式运行;主函数的参数传入的是console,那就按照consoleMode方式运行。

如果是这样的话,使用下面的cmd命令行就可以按照engineMode方式运行:

代码语言:javascript
复制
WindowsSvcDemo.exe -engine

把命令保存在engine.bat文件里面,然后提交到git中管理。

使用下面的cmd命令行就可以按照consoleMode方式运行:

代码语言:javascript
复制
WindowsSvcDemo.exe -console

把命令保存在console.bat文件里面,然后提交到git中管理。

本文回顾:

安装一个Windows服务

卸载一个Windows服务

使用参数控制服务的运行方式

cmd命令行保存到bat文件

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 明丰随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档