把任意程序注册成windows服务, 并设置开机自动启动 | 您所在的位置:网站首页 › win上电自启 › 把任意程序注册成windows服务, 并设置开机自动启动 |
背景
最近有个需求让我把原本部署在linux系统上的数据库和对数据库进行CRUD的java程序部署到windows系统上来. 问题mysql和tdengine这两个数据库有windows版本, 直接安装就行了, 并且也已经自动注册成服务, 可以自己设置开机自动启动(控制面板->本地服务) 但是kafka和zookeeper是绿色版,怎么设置自动启动呢?还有springboot的jar程序,又该如何是好呢? 解决可以使用winSW这个开源项目来注册自定义服务. https://github.com/winsw/winsw/releases 下载这两个文件: WinSW-x64.exe sample-allOptions.xml 如何使用? zookeeper1.把两个文件都改名为你想注册的服务名称, 比如zookeeper.xml和zookeeper.exe 然后exe文件就不用动了, 修改xml文件. 2.修改xml文件 xml文件有这么几项是必填项 zookeeper zookeeper 数据采集系统zookeeper C:\software\zookeeper-3.4.14\bin\zkServer.cmd C:\software\zookeeper-3.4.14\conf\zoo.cfg rotate 这个xml文件就是定义了该服务每次启动时,去执行哪个文件,并且参数或者包含参数的配置文件在哪里, 所以配置了执行文件路径之后,就不要动了,也不要删除,不然服务会启动失败.3.安装服务 在管理员模式的CMD命令行中 a.执行 zookeeper.exe install安装服务 b.执行 start zookeeper.exe 开启服务 c.在控制面板->本地服务 已经能看到了,且可以右键它启动和停止,设置成自动就是开机自动启动 也可以在xml文件中配置好自动启动 Automatic 4.在注册表中查看和修改 win + r打开运行,输入regedit打开注册表编辑器 依次打开计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\zookeeper 找到刚才创建的zookeeper服务 如果你后期把zookeeper.exe移动了位置, 就需要改这个地方了 5.日志 如果服务启动失败,日志默认是在zookeeper.exe文件同级目录, 也可以在xml文件中配置指定目录 %BASE%\logs kafka1.故技重施安装kafka服务 a. 修改kafka.xml kafka kafka kafka C:\software\kafka_2.12-2.4.1\bin\windows\kafka-server-start.bat C:\software\kafka_2.12-2.4.1\config\server.properties rotate2.故技重施安装服务 a.执行 kafka.exe install安装服务 3.注意kafka启动要在zookeeper之后,这需要修改注册表中的开机启动程序顺序,修改这个List,在末尾加上zookeeper和kafka 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder java程序1.修改xml k2h k2h 数据采集系统 java -jar -Xms2048m -Xmx2048m -Dspring.config.location=C:\apps\k2t\config\application.yml "C:\apps\k2t\k2h-3.02.jar" --spring.profiles.active=prod >/dev/null rotate这里要注意,如果你的java程序有外置的配置文件,一定要在执行参数里加上, 否则会不生效. 2.安装 k2h.exe install 3.因为我的java程序是kafka的消费者,要依赖于kafka,所以也加在开机自启的List后面 这样就好了 测试把kafka,zookeeper,java程序里的配置IP什么的都改好 然后重启一下win10看看效果: |
CopyRight 2018-2019 实验室设备网 版权所有 |