网站首页 > 博客文章 正文
注册为Windows服务的程序可以自动启动,比较方便,当然还有其它好处,这里就不多说了。使用Visual Studio可以很方便的创建Windows服务程序,不过很多情况下不想搞的这么麻烦,或者不想去学习这个,比如写了一个Java控制台的程序,又或者用Python写了段脚本,有没有比较简单的方式呢。今天就介绍一个小工具:winsw。
这个工具在github上是开源的,可以去找找。下面就直接说使用步骤了。
1、安装依赖
这个工具依赖.net framework,安装.net 4.0版本就可以了,点击下载安装:https://www.microsoft.com/en-US/Download/confirmation.aspx?id=17718
2、下载winsw并放到程序根目录
下载地址:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/
当前的最新版本是2.3.0,下载后改个比较短的名字,比如就叫winsw.exe,然后放到要注册Windows服务的程序根目录。
3、编写配置文件
这里给出一个Java的例子:
<service> <id>jenkins</id> <name>Jenkins</name> <description>This service runs Jenkins continuous integration system.</description> <env name="JENKINS_HOME" value="%BASE%"/> <executable>java</executable> <arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments> <logmode>rotate</logmode> </service>
可以设置服务的Id、名称、描述、程序的可执行文件、参数、环境变量、日志记录模式等等。还可以设置启动模式、延迟启动、服务优先级、服务依赖、服务停止时的处理、服务失败时的处理等等,根据需要选择,更多参数说明请看官方文档:https://github.com/kohsuke/winsw/blob/master/doc/xmlConfigFile.md
注意这个配置文件的名字需要和上边下载后修改的文件名一致,比如这里为:winsw.xml。
4、安装服务
启动Windows命令行,进入程序目录,执行:winsw install
安装成功后会有一行成功提示。
如果要卸载服务也很简单,执行命令:winsw.install
安装服务完毕后,服务不会马上启动,需要自己到服务管理工具中启动服务,当然系统重启后服务是可以自动启动的。
如果做的更好一些,还可以写一个批处理文件来安装和卸载服务,不用再手动执行命令行。
5、其它问题
整体来说还是比较简单的,不过需要注意程序的输入输出会被winsw重定向,如果程序中有对输入输出的处理,还需多测试下程序的行为。
猜你喜欢
- 2024-10-27 Windows Server 2016 PHP运行环境安装配置
- 2024-10-27 SAP S4HANA 2022安装记录:3. SUSE设置及文件准备
- 2024-10-27 Windows 版本的 B站 开源了?(b站有windows客户端吗)
- 2024-10-27 Maven内网开发与离线仓库导入(离线使用maven仓库)
- 2024-10-27 监控工具之Zabbix,搭建过程和使用心得
- 2024-10-27 Git使用教程:最详细、最傻瓜、最浅显、真正手把手教
- 2024-10-27 向 IT 管理员提供有用的提示:使用 Windows WDS部署各种操作系统
- 2024-10-27 windows下安装php+nginx的运行环境,并把nginx单独注册为服务
- 2024-10-27 通用的windows系统服务注册方案(系统服务注册表)
- 2024-10-27 「苹果小程序」App Clips和微信小程序区别在哪?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)