Node.js 服务 WIN PC 开机自启动除了 PM2 有没有更好的替代方案?

2023-05-22 10:27:04 +08:00
 air00dd
日常使用的 WIN PC 建过一个 Node.js 服务,让服务开机自启动用的是 PM2. 但是 PM2 方案正常运行两个月后突然就各种报错,后台不停生成 log 。每次都只能手动启动 Node.js 服务

WIN 系统下用 PM2 太痛苦了(好像当时还手动弄了个 windows 服务,但是和 PM2 之间运行逻辑的关系不清楚),尤其是有时候不知道什么时候涉及到的复杂的权限管理、windows 服务管理。

不考虑云服务或 WSL ,只考虑 win 系统上的解决方案或者其他比较好的替代 PM2 的开源项目
1355 次点击
所在节点    问与答
8 条回复
xmumiffy
2023-05-22 12:05:07 +08:00
写个命令行直接放 shell:startup 下
air00dd
2023-05-22 12:10:52 +08:00
找到了一篇 2014 年的老文章:使用 nssm 在 windows 服务器上部署 nodejs

https://keenwon.com/1289/
air00dd
2023-05-22 12:14:50 +08:00
air00dd
2023-05-22 12:20:23 +08:00
这边也有一个

Node.js 项目打包成 exe 并注册成 Windows 服务的 Demo

https://github.com/Coande/nodejs-pkg-nsis-demo

"为什么需要注册成服务?为了不显示命令行窗口且开机自启动。
为什么需要把 js 项目打包成 exe 程序?自带 Node.js 运行环境,不需要再额外配置运行环境。
为什么要把程序打包成安装包?为了方便把程序注册成服务,简化操作。"


"node-windows 也可以注册服务,但是不稳定。遇到过运行后服务注册不成功,也没有任何错误输出的情况。利用 pkg 可以把 js 项目打包成自带 Node.js 运行环境的 exe 程序。"

>利用 NSIS 可以把软件打包成安装包,可以自定义安装时的一系列动作。

>添加服务,可以使用 Simple Service Plugin ,参看: https://nsis.sourceforge.io/NSIS_Simple_Service_Plugin

>直接把普通程序注册成服务,是不能运行的:
可以用 srvany.exe 来帮助我们的程序以服务方式运行。可以参考: https://www.cnblogs.com/codealone/p/3156943.html
0xsui
2023-05-22 12:38:49 +08:00
https://github.com/winsw/winsw
clash 服务也用的这个服务启动,很好用
netnr
2023-05-22 12:46:20 +08:00
执行命令 taskschd.msc 打开任务计划程序,新建一个开机任务,或用 SCHTASKS 命令来操作
ixixi
2023-05-22 12:51:01 +08:00
计划任务最简单,最容易调试,通过写 bat 命令启动
qfdk
2023-05-22 14:04:06 +08:00
曲线救国啊 扔到 docker 里面吧……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/941834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX