使用 WinSW 将 nginx 注册成windows系统服务,开机自启
今天在windows服务器部署了nginx,但是系统重启总是需要手动启动nginx,比较麻烦, 于是打算注册成系统服务,但是nginx在windows上没这个功能,需要用额外的工具进行注册。
WinSW介绍
官方介绍如下:
WinSW is an executable binary, which can be used to wrap and manage a custom process as a Windows service.
现实生活中,我们使用windows系统的电脑的时候,可能会遇到这么一种情况:想把一些应用程序添加为开机启动项。对于有图形界面的应用程序,一般不存在问题。但是如果想运行命令行应用程序,就不是那么方便了。一种笨办法就是写个bat,放到启动文件夹里,就可以开机启动了。开机之后,你就会发现,这样会一直显示着一个CMD窗口,而且这个窗口不能关,关了程序就停了。
其实Windows系统自带后台程序管理的功能,也就是我们经常用到的服务。但是Windows的服务只有程序的开发者在写程序的时候引用到这个功能,我们才能利用服务来控制程序的启动和关闭。对于一般的命令行程序来说,没办法利用服务。
WinSW下载
github下载:github winsw
点击releases
选个版本
根据系统选择
服务注册
1.把WinSW.NET4.exe重命名为install-service.exe(名称可以任意命名)复制到nginx的根目录下
2.在nignx的根目录下新建个install-service.xml(必须和前面的install-service.exe一致),编辑内容
<service>
<id>nginx</id>
<name>nginx</name>
<description>nginx</description>
<logpath>E:\nginx-1.19.2</logpath>
<logmode>roll</logmode>
<depend></depend>
<executable>E:\nginx-1.19.2\nginx.exe</executable>
<stopexecutable>E:\nginx-1.19.2\nginx.exe -s stop</stopexecutable>
</service>
3.命令行进入nginx根目录执行如下命令:
install-service.exe install
问题传送门:您必须首先安装.NET Framework 4版本
杀毒软件报警选择允许
nginx注册成功
服务中可以看到我们注册的nginx服务了
问题解决
天下英雄出我辈,一入江湖岁月催
我是「无间行者」,努力把实践过的解决方案分享给大家
如果这篇文章对你有用,一个赞、一个评论、一个收藏,我都很开心
码字不易,给点鼓励吧,让我知道你在看