引言
在使用RocketMQ开发项目之后,不想天天都要手动打开RocketMQ,就想把它做成Windows服务开机自启,然而在注册过程中发现原来经常使用的nssm方式不管用了,就找了个新的注册方式,使用instsrv.exe和srvany.exe的方式来注册服务,结果照着网上各种千篇一律的方法注册失败之后,自己找到另一种取巧的办法,现记录下来。
下载
注册过程
- 第一步,其他人使用的都是生成exe文件,但这个exe文件我不管怎么生成都不成功,故我自己在bin目录下创建了一个批处理文件start.bat,内容是两个启动命令,内容如下
start play.cmd
平时手动启动时,命令如下
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
2. 将instsrv.exe和srvany.exe放到RocketMQ的bin目录下,我的目录为E:\Environment\rocketmq-all-4.6.0-bin-release\bin
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201126093011870.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2MjY3MDk3,size_16,color_FFFFFF,t_70#pic_center)
3. 用管理员权限打开CMD窗口,输入如下命令,exe文件的目录一定要输全,中间的RocketMQ为服务名
```bash
E:\Environment\rocketmq-all-4.6.0-bin-release\bin\instsrv.exe RocketMQ E:\Environment\rocketmq-all-4.6.0-bin-release\bin\srvany.exe
成功显示如下
- 键盘输入Win+R打开运行窗口,输入regedit.exe回车,打开注册表,找到计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RocketMQ目录,新建项Parameter,并添加两个字符串键值,Application为第一步我们创建的bat文件,AppDirectory为RocketMQ的bin目录,创建完成如下
- 键盘输入Win+R打开运行窗口,输入services.msc回车,打开服务列表,找到RocketMQ,右键启动
- 这时候打开cmd,输入如下命令,可以查看RocketMQ运行状态
netstat -an | find "9876"
结果如下