Tag: pm2

PM2(Node.js)不监听指定的端口

我试图在PM2上启动并运行Node / Express应用程序。 我可以用这个命令启动应用程序: npm start 这在3000端口启动应用程序。 如果我尝试启动应用程序与pm2 start app.js我在日志中获得以下内容: { online: true, success: true, pid: 10714, pm2_version: '0.8.15' } 2014-06-12T19:52:06.789Z : [[[[ PM2/God daemon launched ]]]] 2014-06-12T19:52:06.800Z : RPC interface [READY] on 6666:localhost 2014-06-12T19:52:06.801Z : BUS system [READY] on 6667:localhost 2014-06-12T19:52:06.978Z : Entering in node wrap logic (cluster_mode) for script /home/user/test/app.js 2014-06-12T19:52:07.115Z : /home/user/test/app.js […]

使用PM2,我怎样才能将我的node.js应用程序部署到同一台服务器上的多个环境和端口?

我有一个我使用PM2部署的节点应用程序的ecos.json文件 。 我已经试过configuration了一堆不同的方式,但没有运气完成我的目标是: 能够部署到生产环境或临时环境(目前都在同一台服务器上)。 当部署到一个,另一个应该保持运行。 两个不同的环境应该在不同的端口上(prod = 8000,staging = 3000) 发生什么事是我运行的第一个胜利的部署命令。 因此,如果我执行pm2 deploy production ,然后pm2 deploy staging ,则只有生产应用程序/端口组合正在服务器上运行,反之亦然,如果我切换订单。 编辑:如果我使用下面的conf,将有2个应用程序运行在pm2 status ,但如果我做一个netstat ,我只能看到第一个端口。 (centos 6) 我觉得我一定是错过了一些明显的东西。 这是我的ecos.json文件,我已经尝试过,没有多个应用程序声明在顶部。 { /** * Here we declare the apps that must be managed by PM2 * All options are listed here: * https://github.com/Unitech/PM2/blob/master/ADVANCED_README.md#json-app-declaration * */ apps : [ { "name" […]

以pm2作为根启动应用程序

我有一个守护进程,必须在启动时以root身份运行。 我使用pm2来启动其他应用程序,但无法弄清楚它是否能以root身份启动应用程序。 可以这样做吗? 如果不是,我有什么select?

如何在使用pm2时自动重新加载Node.js项目

我目前正在使用Express.js编写Node.js,并且每次在文件路由器或应用程序中更改一行代码时,都需要input以下命令: pm2 reload id_project. 文件更改时如何让pm2自动重新加载项目?

如何运行pm2以便其他服务器用户能够访问该进程?

当我用pm2启动我的Nodejs应用程序时,其他服务器用户无法访问该进程。 即使我从一个自定义目录启动pm2(不是当前用户的~/ ,pm2默认使用的是什么): HOME=/var/www pm2 start app.js 任何用户都可以访问目录 (与~/比较),但其他服务器用户仍然无法访问该进程。 当其他服务器用户做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) 所以我想知道如何确保用户能够访问其他服务器用户运行的pm2进程? 还是应该有不同的接近? 我想知道为什么每个服务器用户能够使git pull从Git存储库部署最新的源代码,但不能重新启动pm2过程之后? 只有启动pm2进程的用户才能重新启动它…奇怪。

用PM2永远运行NodeJs http-server

我的问题是关于与PM2结合运行HTTP服务器。 我面临的问题是: HTTP服务器需要input作为网站根目录的文件夹和运行网站的端口号。 即使使用-g选项安装了HTTP服务器,PM2也不能识别HTTP服务器命令。 所以我尝试了以下(注意应该传递参数到HTTP服务器脚本的双破折号: /node_modules/http-server/lib$ pm2 start http-server.js — /home/unixuser/websiteroot -p8686 但它不起作用。 我也试过: http-server /home/unixuser/websiteroot -p8686 哪个工作,但没有pm2的大力支持? 任何build议将是伟大的,谢谢!

Node.JS内置集群还是PM2集群?

哪个更好? 我已经启动了与工作者的Nodejs集群模式,但是现在我发现了同样的事情的PM2。 我使用keymetrics从我的web服务器查看统计信息,我注意到,当我启动我的NodeJS节点(具有内置群集)而没有使用PM2群集function时,Keymetrics报告使用了20 / 30MB Ram。 如果我停用集群(在节点内部)并开启PM2集群,则keymetrics报告约300MB的Ram使用情况。 现在,哪种方法更好,为什么使用内置的集群keymetrics报告只有30MB的内存使用量?

合并/命名空间PM2应用程序

有PM2configuration,/ /home/foo/someconfig.json { "apps": [ { "name": "foo-main", "script": "./index.js", }, { "name": "foo-bar", "script": "./bar.js" }, { "name": "foo-baz", "script": "./baz.js" } ] } 大多数情况下,我想引用当前命名空间下的所有应用程序,例如 pm2 restart foo 而不是做 pm2 restart foo-main foo-bar foo-baz Bash大括号扩展名无法使用,因为应用程序可能在Windows中运行。 做pm2 restart /home/foo/someconfig.json不是一个好的select,因为它需要一些时间来找出configuration文件的path,它可能会不同项目之间,甚至改变它的位置。 可以将foo-*应用程序合并到单个的foo应用程序中,还是以其他合理的方式完全引用?

Express 4 + pm2手表不能正常工作

我用这个运行pm2: pm2 start bin/www –watch ../ 问题是,当我更新根文件夹中的app.js时,它似乎不是自动启动节点。 有任何想法吗?

如何将节点v8参数和脚本parameter passing给pm2?

我需要能够启动pm2下面的应用程序,但不知道如何开始与pm2。 node –expose-gc bin/www arg1 arg2 arg3 我知道–node-args但我认为只适用于–expose-gc。