Tag: pm2

当发生错误时,pm2不重新启动worker

我正在使用pm2来pipe理我的nodejs express应用程序(以集群模式运行)中的进程。 我们有2种error handling程序 第一:'uncaughtException'将被处理 process.on('uncaughtException', function(err){}); 实际上,我并没有声明这样的处理器,让PM2在这种情况下检测到死亡的工作者,所以自动重新启动死亡的工作者。 SECOND:表示error handling程序,我的意思是错误将被转发到expressionerror handling程序,而不是uncaughtException处理程序,像下面的error handling程序 app.use(function(err, req, res, next) {}) 我也没有声明这个error handling程序与uncaughtException相同的目的。 但在这种情况下pm2不重新启动节点。 任何关于这个问题的想法? 非常感谢

如何在Node.js中实现零停机重新部署

什么是最简单的方法来实现我的Node.js应用程序的零宕机? 我有一个应用程序,需要以下步骤重新部署: npm install node_modules/.bin/bower install node_modules/.bin/gulp 这些操作的结果是由名为build的gulpfile.js目录生成的准备运行的应用程序。 在这个目录中,我有一个相同的应用程序的当前正在运行的实例(目前通过forever start server.js像这样forever start server.js )。 据我所知,通过forever模块不可能达到零停机时间,所以我决定select另一种方式来做到这一点。 我看到了pm2,但我发现它非常复杂tbh(如果你感觉不一样,certificate我错了)。 我也没有看到,但我甚至无法启动我的应用程序通过naught start server.js – 它甚至不打印任何标准输出/标准错误。 我也看到了运行时间,但我没有得到这个想法 – 当我运行gulp应该replace目前正在运行的实例工作的目录中的文件时,它将如何处理情况?

日志pipe理与PM2

如果我有一个远程日志服务器,如何将日志从pm2导出到它的url? 而PM2是否有巧妙的批量日志方式,而不是一个接一个的发送日志(我怕交通繁忙)。 如果原始pm2不支持它,你将如何devise一个外部的日志服务器?

Ansible。 如何通过pm2运行node.js应用程序

用Ansible在Ubuntu服务器上设置node.js应用程序的正确方法是什么? 现在我试图将pm2注册为如下代码的服务: – name: install pm2 npm: name: pm2 global: yes state: present – name: create pm2 init.d script template: src: pm2_init_config.j2 dest: "/etc/init.d/pm2" backup: yes – name: ensure pm2 service is started service:· name: pm2 state: started enabled: yes 但遇到奇怪的错误:在Ansible控制台pm2 pm2 unrecognized service pm2_init_config与这个相似 如果我ssh到框,并运行sudo service pm2 start一切按预期工作

如何产生与PM2的工人

通过使用PM2,我已经失去了运行本地集群的能力,我曾经用它来产生工人,比如: if (cluster.isMaster) { cluster.schedulingPolicy = cluster.SCHED_NONE; for (var i = 1; i < CPUs; i++) { cluster.fork(); } Object.keys(cluster.workers).forEach(function(id) { cluster.workers[id].on('message', logpi); }); cluster.on('death', function(worker, code, signal) { console.error('Death:', worker.pid); cluster.fork(); }); cluster.on('exit', function(worker, code, signal) { console.error('Exit:', worker.pid); cluster.fork(); }); require('./worker.js'); } else { require('./server.js'); } 我将如何在集群模式下启动PM2时产生工人$ pm2 start app.js -i 0 ?

如何启用PM2日志中Debug包的颜色?

我正在使用debugging包生成日志,我也使用PM2来启动我的应用程序。 在运行pm2 logs ,它不会显示在使用node cli运行应用程序时通常使用debugging日志生成的默认颜色。 这是使用pm2输出日志时显示的内容: 这是使用node启动应用程序时显示的内容: 如何通过PM2查看与使用node cli运行应用程序相同的输出中的日志?

pm2停止和删除应用程序之间的差异

在pm2节点应用程序pipe理器中,停止和删除应用程序有什么区别。 我知道删除应用程序从pm2:s控制删除应用程序,但停止应用程序做什么? 他们都将节点服务器设置为离线。 我的问题是,在部署期间,如果我想拉代码,然后重新启动节点服务器,那么使用哪个pm2命令? 我现在所做的是第一个pm2停止应用程序 – >拉代码 – > pm2启动应用程序。 但是,我怎么知道app.js是真的更新? 如果停止将应用程序放在内存中并将其加载在内存中,该怎么办 所以启动后,它将启动以前的版本,而不是从被拉的代码。

如何从pm2下的群集进程延迟“在线”事件?

我的nodejs应用程序需要一段时间才能接受请求(资源被编译等)。 当我在pm2下以集群模式运行它并触发重新加载时,pm2开始逐个重新加载实例,但是它不会等到应用程序实际上能够接受请求,然后继续重新启动其他实例 – 这会导致所有实例被closures了一段时间。 通过pm2源头看来,它似乎等待来自工作进程的“在线”事件,并且该事件发生得太快。 有没有办法延迟这个在线事件来实现正常的重新加载? 这里是testing用例: var http = require("http"); setTimeout(() => { var server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader("Content-Type", "text/plain"); res.end("hello\n"); }); server.listen(7000, "127.0.0.1", () => { console.log("server ready"); }); }, 10000); 从pm2 start app -i 2 ,然后尝试使用pm2 reload app 。 在我的机器上,当应用程序完全不响应请求时,大约有4s窗口: curl: (7) Failed to connect to localhost […]

pm2不在ubuntu启动

我想在启动时运行pm2而没有成功 我正在安装在Ubuntu 16.04。 我的npm目录是:〜/ .npm-global。 在那里,我可以看到pm2 -> ../lib/node_modules/pm2/bin/pm2 没有转储文件。 我的pm2目录是〜/ .pm2: 在那里,我可以看到dump.pm2和rpc.sock 如果我做: sudo $(which pm2) start app.js sudo $(which pm2) startup ubuntu -u $USER sudo $(which pm2) save 它显示了我: Generating system init script in /etc/init.d/pm2-init.sh [PM2] Making script booting at startup… [PM2] -ubuntu- Using the command: su -c "chmod +x /etc/init.d/pm2-init.sh && update-rc.d pm2-init.sh […]

生产应用程序中的Console.log使用node.js,express和PM2

我使用console.log来debugging我的web应用程序中的一些信息,使用node.js,expressjs和PM2。 所有工作正常:) 我想知道如果我的web应用程序可以在生产中遇到性能问题,如果我使用console.log这个: var myVariable = "Enter in this section of code"; console.log(myVariable); 我已经阅读了有关console.log是同步的,可以影响我的performance…如果这是真实的(我正在使用Express 4 ),我怎样才能删除这些console.log在不同的环境,如生产? 我正在使用PM2( pm2日志命令 )观看日志和pm2刷新清理日志。 谢谢。