老板让我将node应用程序设置成win服务??
2024/8/28 0:02:46
本文主要是介绍老板让我将node应用程序设置成win服务??,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
起因
哈哈首先,先说明一下,真实问题肯定要比标题要复杂一些,我以node应用程序作为一个栗子去做演示,原理是一样的。
那么废话不多说,我们先来看看如何去实现标题的需求呢。
你看到这个标题是不是脑海中会浮现docker、pm2、eggjs工程自带开机自启等等。我今天分享的是另一个我觉得挺有意思的开源工具——WinSW。
什么是WinSW?
WinSW 是一个开源工具,可以将任何可执行文件包装成 Windows 服务。它支持多种配置选项,使得管理服务变得非常灵活和方便。
看这里——任何可执行文件,那也就是说,bat,exe等等都是符合的。
准备工作
在开始之前,请确保你已经安装了以下软件:
1. Node.js 和 npm(Node 包管理器)
2. WinSW 工具
你可WinSW 的 GitHub 页面 下载最新版本的 WinSW。
地址:https://github.com/winsw/winsw/releases
将下载好的WinSW.exe更改你所想要的服务名,如node-demo-service.exe。
配置 WinSW
首先,我们需要创建一个 XML 配置文件,用于定义服务的各项属性。以下是一个示例配置文件 node-demo-service.xml
(和exe保持同名):
<service> <!-- 服务ID。它应该在整个Windows系统中是唯一的--> <id>node-demo-service</id> <!-- 在系统服务中显示的名称 --> <name>node-demo-service</name> <!-- 服务描述 --> <description>node express demo 服务</description> <!-- 启动可执行文件的路径 --> <executable>D:\Adam\installPath\nvm\v20.12.2\node.exe</executable> <!-- Node.js应用程序的路径 --> <arguments>D:\Adam\project\my-project\node-serve\app.js</arguments> <!-- 日志路径(如不配置,日志文件默认在可执行文件的路径),注意:要注释,不能保留空标签,启动会报错 --> <!-- <logpath></logpath> --> <!-- 日志模式 --> <logmode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log> </service>
注册服务
1. 将下载的 WinSW 可执行文件重命名为 node-demo-service.exe
,并将其放置在与 node-demo-service.xml
相同的目录下。
2. 打开命令提示符(以管理员身份运行),切换到包含 node-demo-service.exe
和 node-demo-service.xml
的目录。
3. 运行以下命令注册服务:
node-demo-service.exe install // 补充,删除服务命令 // node-demo-service.exe uninstall
如果一切顺利,你应该会看到类似以下的输出:
2024-08-26 11:19:58,067 INFO - Installing service 'node-demo-service (node-demo-service)'... 2024-08-26 11:19:58,081 INFO - Service 'node-demo-service (node-demo-service)' was installed successfully.
启动和管理服务
服务注册成功后,你可以在服务中去开启和停止服务:
设置开机自启
双击服务,选择自动即可。
运行效果
好了附一下node代码
// app.js const express = require('express'); const app = express(); const port = 3000; app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(port, () => { console.log(`Server is running at http://localhost:${port}`); });
总结
通过使用 WinSW,我们可以轻松地将 Node.js 应用程序注册为 Windows 服务,从而实现自动启动和管理。这不仅提高了应用程序的可靠性,还简化了部署和维护过程。希望本文对你有所帮助,祝你在使用 WinSW 时一切顺利!
关注【程序员北巷】加星标,学习更多有用知识🚀
这篇关于老板让我将node应用程序设置成win服务??的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15AntDesign项目实战:新手入门与初级应用教程
- 2024-11-15AntDesign-Form-rules项目实战:新手指南
- 2024-11-14ESLint课程:初学者指南
- 2024-11-14Form.List 动态表单课程:新手入门教程
- 2024-11-14Redux课程:新手入门完全指南
- 2024-11-13MobX 使用入门教程:轻松掌握前端状态管理
- 2024-11-12前端编程资料:新手入门指南与初级教程
- 2024-11-12前端开发资料入门指南
- 2024-11-12前端培训资料:适合新手与初级用户的简单教程
- 2024-11-12前端入门资料:新手必读指南