有没有办法让pm2运行一个npm启动脚本,或者你只需要运行 pm2 start app.js
所以在发展中
npm start
然后在pm2的制作中你会运行类似的东西
pm2 start 'npm start'
永远有一种相同的方法可以做到这一点
forever start -c "npm start" ./
我有一个使用Restify和Mongoose构建在node.js中的REST服务和一个带有大约30.000个常规文档的集合的mongoDB.我的节点服务通过pmx和pm2运行.
昨天,突然,节点开始消除错误消息"MongoError:拓扑被破坏",仅此而已.我不知道这是什么意思,什么可能触发这个.谷歌搜索时也没有太多东西可以找到.所以我想我会问这里.
今天重新启动节点服务之后,错误就停止了.我也有其中一个正在运行中,它让我感到害怕,这可能会在任何给定的时间发生在运行那里的设置的一个非常重要的部分......
我正在使用以下版本的提到的包:
我经常搜索这个问题,但我没有得到明确的解释.群集应用程序可以扩展,分叉应用程序不能只有一个区别吗?
PM2的公共站点解释了集群模式可以做这些功能,但没有人说过Fork模式的优点(也许,它可以NODE_APP_INSTANCE变量).
我觉得Cluster可能是Fork的一部分,因为Fork似乎一般都会被使用.因此,我认为Fork意味着从PM2开始只是'分叉过程'而Cluster意味着'分叉过程能够被扩展'.那么,我为什么要使用Fork模式?
我使用pm2启动我的应用程序,但我无法传递参数.我正在使用的命令是pm2 start app.js - dev.虽然这适用于永远.
有没有办法在.pm2/logs中为错误日志添加时间戳?
我注意到该pm2 logs命令显示带有时间戳的聚合日志,但查看日志文件 - 只有消息和没有日期的堆栈跟踪.

我有一个 AWS EC2,仅用于保持 Next.js 客户端运行(目前没有后端)。目前,如果我进入终端并输入npm run develop,该网站将完美运行。但是,我希望这个进程始终在实例的后台运行。有什么办法可以用 pm2 做到这一点吗?
我已在全球范围内安装了它,但它不会让我运行pm2 start npm run develop. 顺便说一句,是的,我希望它现在在开发模式下运行。
我有一个准备好的节点应用程序是可行的,但有已知和未知的错误,崩溃节点应用程序.在这种情况下,如果pm2可以重新启动节点应用程序会很好.此功能是否已在pm2中提供?
当我开始与我的应用程序的NodeJS PM2,其他服务器的用户都无法访问该进程.
即使我从自定义目录(不是当前用户~/,默认情况下pm2正在使用)启动pm2 :
HOME=/var/www pm2 start app.js
Run Code Online (Sandbox Code Playgroud)
任何用户都可以访问目录(与之相比~/,但是其他服务器用户仍然无法访问该进程.
当其他服务器用户这样做时pm2 list,它会显示0正在运行的进程 - 但是有(由另一个用户启动).当其他用户尝试时HOME=/var/www pm2 list,CLI会抛出错误:
events.js:72
throw er; // Unhandled 'error' event
^
Error: connect EACCES
at errnoException (net.js:905:11)
at Object.afterConnect [as oncomplete] (net.js:896:19)
Run Code Online (Sandbox Code Playgroud)
所以我想知道如何确保用户能够访问其他服务器用户运行的pm2进程?或者它应该以不同的方式接近?
我想知道为什么每个服务器用户都能够git pull从Git存储库部署最新的源代码,但pm2之后无法重启进程?只有启动pm2进程的用户才能重启...很奇怪.
我想做一个cron作业,每15分钟发送一次从数据库表中获取数据的邮件.在节点js中,我可以创建一个cron作业但是通过PM2,我不知道在哪里放置代码以及它是如何工作的.