我从 this site 获得了帮助,并为我的节点应用程序创建了
.exe
(可执行文件)。但是,如果出现一些错误,它就会消失。我曾经使用 pm2
来处理它,但现在我需要使用可执行文件,我使用 pkg
来创建它的 .exe
文件。
有没有办法只需双击它就可以使用
pm2
来运行它?
我认为您无法阻止顶级错误关闭正在运行的程序。它更像是一种操作系统功能,而不是 NodeJS 功能。
您需要捕获所有错误并正确管理它们。
更简单的方法(但不是最干净的)是将入口点包装在 try catch 函数中,并在出现错误时从 catch 重新启动它。
嗨,据我所知,PM2一旦遇到错误就会重新启动,还有一种方法可以观察文件夹结构的变化。一旦出现错误并且您的服务器即将在该特定时间重新启动,请使用该包构建 .exe 文件,然后启动服务器。
在下面,如果你想传递任何参数,那么使用 --node-args 否则不要使用
pm2 start app.js --name "You App Name" --node-args="-r dotenv/config" --watch
然后在您的 app.js 文件中执行以下操作
const pkg = require('pkg');
//here use the package to build the .exe file
//here start the server
npm install pkg -g
npm install pm2 -g;
sed -ri -e '/dt.toString/d' -e '/PM2_BANNER/d' /usr/local/lib/node_modules/pm2/lib/Client.js;
pkg -o /pm2 --targets linuxstatic `which pm2`;
/pm2 --version