Articles of pm2

从pm2开始申请,如果开始形成吞噬

嗨,我正在按照教程来构build一个nodejs应用程序。 本教程使用gulp来运行我的应用程序,我只是gulp dev来开始所有的事情。 在我的大文件中,我有: var fs = require('fs') var gulp = require('gulp') fs.readdirSync(__dirname+'/gulp').forEach(function(task){ require('./gulp/' + task) }) gulp.task('dev', ['watch:css', 'watch:js', 'dev:server']) 在./gulp/server.js中的代码 var gulp = require('gulp') var nodemon = require('gulp-nodemon') gulp.task('dev:server', function(){ nodemon({ script: 'server.js', ext:'js', ignore: ['ng*', 'gulp*', 'assets*'], env: { 'NODE_ENV': require('../config').ENV } }) }) 是否有可能以某种方式使用pm2这个吞咽的设置,我看到一些问题在stackoverflow和谷歌,但无法做任何事情。 如果有人可以帮助我会很好。 先谢谢你。

错误:无法find模块'/Users/wyb/.nvm/versions/io.js/v3.0.0/lib/node_modules/pm2/lib/ProcessContainerFork.js'

删除旧版本的nvm后,我使用自制程序安装了最新版本的节点。 不过,我使用pm2开始我的项目时遇到了一些问题: pm2-dev server.js 它加载了包括nvm的path。 这里是日志: 错误:无法find模块'/Users/wyb/.nvm/versions/io.js/v3.0.0/lib/node_modules/pm2/lib/ProcessContainerFork.js'

在heroku上使用PM2 CLI

我想在Heroku上使用pm2。 我看过这里提供的文档: http : //pm2.keymetrics.io/docs/usage/use-pm2-with-cloud-providers/#heroku-google-app-engine-azure 看起来应用程序一旦部署就可以正常工作,并且日志表明多个实例已经在2Xdynamic码上启动。 然而,当我运行: heroku run bash和做pm2 ls我得到一个空的列表: ┌──────────┬────┬──────┬─────┬────────┬─────────┬────────┬────────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │ └──────────┴────┴──────┴─────┴────────┴─────────┴────────┴────────┴──────────┘ 而且我不能使用任何pm2 CLIfunction。 我明白,当我做一个heroku run命令一次性的dynamic是在飞行中创build的,并且在这个dynamic运行的pm2实例不运行任何进程。 但是,我不明白我怎么能访问pm2在一个特定的测功机。 有没有办法利用Heroku上的pm2 cli?

如何在某个节点版本上运行pm2?

在我们的linux服务器上有几个不同版本的节点运行,我的服务基于节点v0.11.14。 但是,其他人的代码必须在较低版本的节点(低于v0.11)上运行,否则他们的服务将无法使用。 所以我无法将全局节点版本定义为v0.11。 我只想运行pm2来监视基于节点v0.11的服务。 有没有办法在节点v0.11上运行我的pm2而不更改全局节点版本? 谢谢

编辑现有的PM2过程

我有一个现有的PM2过程,我想添加“ – 最大内存重新启动”设置。 我怎样才能做到这一点? 该进程是从没有JSON文件的命令行创build的。 如果我正在创build一个新的进程,我会运行: PM2 start [process name] –max-memory-restart 700M或其他 我怎样才能做到现有的过程相同? 我怎样才能确认它的工作原理? 谢谢!

如何使用PM2做一个cron任务

我想做一个cron作业,每15分钟发送一次邮件,从数据库表中获取数据。 在节点js我可以做一个cron工作,但通过PM2我不明白在哪里放置的代码,以及如何工作。

使pm2login到控制台

我使用pm2运行一个节点的networking服务器。 由于pm2衍生另一个进程,并将stdout和stderrredirect到文件,所以我必须在其他位置查找日志。 理想情况下,我希望节点进程输出到我运行pm2的同一个控制台窗口。 否则,我会解决pm2运行一个活动的控制台窗口的节点进程,并有节点进程的stdout和stderr写入该控制台窗口。 这怎么能实现? 我在一台Windows机器上。

如何检查我的pm2应用程序NODE_ENV是否正在设置?

所以我刚刚第一次部署了一个节点和pm2的站点,然后回去做一些优化和阅读最佳实践等。 我读过,你可以通过设置NODE_ENV=production来获得很多好处。 我在pm2文档中find了这个: [process.json] "env_production" : { "NODE_ENV": "production" } … $ pm2 start process.json –env production 所以,我做了,但我不知道它是否工作。 当试图找出如何检查它,我学会了尝试: $ node > process.env.NODE_ENV > undefined 所以,这不是一个好兆头,但是,由于我对低级别工作的理解有限,我可以猜测,也许pm2会将每个应用程序作为单独的节点进程启动? 所以当我尝试检查时,可能我没有find正确的方法。 另外,我不知道是否必须创build一个新的〜/ .pm2 / dump.pm2文件,因为也许每当这可能覆盖我设置的选项? (因为我用pm2 startup )。 如何检查我的pm2应用程序的NODE_ENV是否已设置?

多个处理器上的NodeJS(PM2,群集,重新群集,无)

我正在研究在多核环境中运行节点的选项。 我试图确定最好的方法,到目前为止我已经看到了这些选项 使用内置的集群库来启动工作并响应信号 使用PM但是,PM2 -i被列为beta。 零 再群集 还有其他的select吗? 什么是乡亲在生产中使用?

有关pm2重新启动与重新加载的困惑

发出“pm2 restart all”会重新启动pm2正在pipe理的所有进程。 我想知道:如果有任何源文件的变化,这是否真的重新加载更改? 或者它只是重新启动内存中现有的pm2进程。