Tag: pm2

我所有的Node.js应用程序都在同一时间不可预知地崩溃

我已经编写了两个简单的Node.js应用程序,每个应用程序都在一个端口(1337和1338)上运行一个服务器,并使用PM2(和Keymetrics)使它们保持活动状态,但是每隔几天,所有三个Node.js应用程序(包括PM2)同时崩溃。 我对Node.js相当陌生,不确定如何调查问题的根源。 细节: 这两个服务器响应传入的GET请求。 一个是为了响应Bitbucket触发器而自动执行GIT获取/拉取,另一个将URL转换为PDF并将PDF发送回浏览器(使用wkhtmltopdf)。 他们在运行时都能正常工作。 我正在运行Node.js v0.12.4。 当三个应用程序closures时,我的第一个迹象是来自OpenShift上的Uptime( https://github.com/fzaninotto/uptime )实例,该实例通过电子邮件向我表示我的一个Node.js服务器已closures,返回"connect ECONNREFUSED" 。 几分钟后,Keymetrics给我发电子邮件说: "Agent is offline: Keymetrics Agent seems to be offline" 。 换句话说,所有我的node.js的东西似乎同时下降, 两个应用程序甚至PM2都没有运行。 我以为Node为每个应用程序都产生了一个stream程,那么他们怎么会一下子呢? 我试过了什么: 我试着挖掘〜/ .pm2 / pm2.log,但一直没能find有用的东西。 也许我只是不知道该找什么。 $ pm2 resurrect总是带来一切恢复生活就好。

Node.js + Socket.io + Redis应用程序通过PM2大内存占用

我对node.js和socket.io都很陌生,但是我正在尝试构build一个简单的服务来侦听Redis通知(由PHP应用程序提供),并将它们广播给当前login的任何用户,并连接到一个套接字.io空间例如'site_name:user:user_id'。 我有它的工作,但节点应用程序的内存占用迅速变得越来越大,从100mb到200 + MB很快,约100名在线用户和积极浏览,我想知道是否有什么设置错误在这里。 PM2正在处理节点应用程序,而nginx被设置为反向代理。 服务器端: var app = require('express')(); var server = require('http').Server(app); var io = require('socket.io')(server); var redis = require('redis'); var redisClient = redis.createClient(); var allClients = []; server.listen(8890); io.sockets.on('connection', function (socket) { allClients.push(socket); socket.on('subscribe', function(data) { console.log('Joining room', data.room); socket.join(data.room); redisClient.subscribe(data.room); }) socket.on('disconnect', function() { console.log('Disconnect'); var i = allClients.indexOf(socket); delete allClients[i]; […]

pm2杀死所有内容,无需重启服务器即可重启

现在两次我通过pm2运行的所有应用程序已经停止了,没有明显的原因给我。 所有从pm2开始的应用程序都会启动app.js -n prettyname,直到这个时间才能正常工作。 不,我知道为什么停止。 但是在屏幕截图中执行类似上面的任何pm2命令,启动,重新启动或停止的结果都是一样的。 [PM2]产生PM2守护进程 有没有办法重新启动应用程序,而无需重新启动服务器? 节点0.10.32 pm2 0.15.10

使用节点v6.x和pm2导致koa-ejs一个错误

当我使用节点v6.x和pm2来启动服务时,会出现一个错误: TypeError: Iterator result <!DOCTYPE html> …. </html> is not an object at Object.app.context.render (/Users/…./project/node_modules/koa-ejs/index.js:98:23) at next (native) at onFulfilled (/Users/…./project/node_modules/co/index.js:65:19) 但在这些情况下,我不会得到这个错误: 与pm2节点v4.x 没有pm2的节点v6.x 我不知道是什么原因导致这个bug

pm2'cluster'模式无法加载LD_LIBRARY_PATH

我正在安装npm包ccap来生成CAPTCHA 。 因为它是一个c + +添加和需要gcc 4.8 + ,我安装时遇到了一些问题。 我编译了gcc 4.9.4,并在我的开发机器上成功安装了ccap。 但是,当我尝试启动我的应用程序(不含pm2)时,遇到了这个问题。 Error: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/jwb/ccapDemo/node_modules/ccap/build/Release/hcaptha.node) at Error (native) at Object.Module._extensions..node (module.js:597:18) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Function._load (/home/jwb/ccapDemo/node_modules/pmx/lib/transaction.js:47:40) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (/home/jwb/ccapDemo/node_modules/ccap/lib/hcap.js:4:13) at Module._compile (module.js:570:32) 我search了很多,并通过在.bash_profile中设置以下linux环境variables来修复它。 export LD_LIBRARY_PATH=/home/jwb/gcc-4.9.4/lib64:$LD_LIBRARY_PATH 现在看起来像工作,但是当我尝试在PM2集群模式下开始我的演示时,也出现了同样的问题。 我也试过pm2叉模式 […]

pm2 – 是否有办法限制只有主人的一些代码?

我试图使用pm2来部署我的nodejs应用程序。 我有一些应该只执行一次的cron作业。 在PM2集群模式下,我可以在多个CPU上扩展我的应用程序,但是它们都将执行我的cron作业。 就像nodejs API有cluster.isMaster或者cluster.isWorker ,我可以只要求PM2主机执行它吗?

如何在PM2中更改Windows的日志和启动脚本path

我有一个节点应用程序,我正在使用PM2来运行应用程序。通过这个我已经实现了没有活动命令提示符运行应用程序。 现在我试图运行相同的Windows重新启动时,所以对于Windows,我发现PM2将无法正常工作,它需要另一个模块PM2-Windows启动,所以我已经使用,它在我的本地机器工作正常。 但是当我在服务器机器上尝试一样,那么在群集中有很多机器, PM2日志已经将它的默认path从C:\ users \ admin.pm2 \ logs更改为H:\ logs ,同时在H:\当这个命令PM2 save所以无论何时服务器机器重启也启动脚本不运行结果应用程序closures。 我怎样才能改变在PM2的Windows机器的日志和启动脚本的path。如何给PM2和PM2-windows-startup的PM2_Home envvariables 我已经尝试PM2-windows服务下面的步骤中的一个注释的图像 ,然后显示安装,当我检查PM2 list没有应用程序正在运行。 这是我在页面图像的步骤中的逗号中find的图像 在下面显示我的结果图片

与pm2集群

我写了一个Express应用程序,我想使用pm2进行缩放。 这个快速的应用程序执行一些工作,我只需要执行一次。 当我打算使用pm2启动多个作业实例时,我认为它也会多次运行定义的作业。 那么如何让我的应用程序知道只有一个实例需要运行特定的代码部分呢? 代码示例: agenda.every('1 hours', 'refreshProfiles')

Node.js – 任何方式来恢复当前正在运行的保存的脚本?

我不小心保存了一个现有的node.js脚本文件,使其在文件系统上完全空白。 我没有使用任何types的版本控制,所以这个长的脚本文件似乎不可恢复。 然而,该应用程序目前正在通过pm2运行(因为它是在我犯这个错误之前启动的)。 有没有办法通过node.js命令提示符从正在运行的应用程序中恢复此文件?

cronjob使用pm2启动node.js(类似于永远)

我对cron相当陌生。 我不知道如何cronpathvariables。 当我开始我的过程使用ssh会话,我会写命令: NODE_ENV=test pm2 start /home/myuser/webapps/myapp/app.js / NODE_ENV=test pm2 start /home/myuser/webapps/myapp/app.js 这应该怎么写在crontab? 像这样的东西? @reboot NODE_ENV=test env PATH=$PATH:/home/myuser/bin pm2 start /home/myuser/webapps/myapp/app.js 我会很感激你的帮助。 谢谢!