Tag: pm2

指示pm2不要在json文件中启动多个实例

以下是pm2 process.jsonconfiguration文件。 该应用程序使用该命令盯着 pm2 start /root/src/sample_v2/deploy-scripts/processes.json { "apps" : [{ "name" : "sample_app_v2", "script" : "bin/www", "log_date_format" : "YYYY-MM-DD HH:mm Z", "node_args" : "–harmony", "cwd" : "/root/src/sample_v2", "env": { "NODE_ENV": "production", "AWESOME_SERVICE_API_TOKEN": "xxx", "TZ": "Europe/Amsterdam" } }] } 产量 PM2: 2015-03-31 17:58:58: Starting execution sequence in -fork mode- for app name:sample id:10 PM2: 2015-03-31 17:58:58: […]

如何剪切日志文件?

我使用pm2创build日志文件,它是非常大的(大约1.2GB,并且还在增加)。 如何将大日志文件剪切成多个小日志文件? 有没有pm2支持自动切割日志文件?

将工作人员添加到PM2池。 不要重新加载/重启现有的工人

Env .: Ubuntu上的Node.js,以编程方式使用PM2。 我已经通过我的主代码上的节点启动了具有3个实例的PM2。 假设我使用PM2命令行来删除其中一个实例。 我可以添加另一名工人到游泳池吗? 这能做到而不影响其他工人的操作吗? 我想我应该使用start方法: pm2.start({ name : 'worker', script : 'api/workers/worker.js', // Script to be run exec_mode : 'cluster', // OR FORK instances : 1, // Optional: Scale your app by 4 max_memory_restart : '100M', // Optional: Restart your app if it reaches 100Mo autorestart : true }, function(err, apps) { […]

在集群模式下运行pm2redirect后,req.session数据丢失

我们运行一个node.js应用程序,并使用express 4.6.1 cookie分析器1.3.2 connect-flash 0.1.1和express session 1.7.0。 我们使用Flash在redirect后在页面上显示消息,有时在req.session中存储数据,以便在用户犯错并需要重新input时自动填写表单。 最近,我们开始在集群模式下使用pm2,大多数情况似乎都能正常工作,但是我们注意到,在redirect之后,我们丢失了存储在req.session中的闪存数据和数据。 这里是一个例子: req.flash("signup", errorString); req.session.storedData = {}; req.session.storedData.username = ""; req.session.storedData.password = req.body.password; req.session.storedData.email = req.body.email; req.session.storedData.emailConfirm = req.body.emailConfirm; res.redirect(problemRedirectPath); 这来自在用户尝试注册后接受请求但是有某种错误的端点。 如果我们在没有集群模式的情况下运行它,会话数据和闪存都会正常显示,但是如果我们在集群模式下运行它们,它们几乎总是丢失(不总是:/) 有没有更好的方式在集群模式下做到这一点?

奇怪的行为fs.readdirSync

我使用nodejs 5.5.0和nodejs 1.0.1。 我运行脚本: npm start 在package.json中,它被定义为: "scripts": { "start": "pm2 start bin/www –watch" }, 我有这个简单的脚本,返回一个video列表,它的工作原理: var express = require('express'); var router = express.Router(); router.get('/', function(req, res, next) { const fs = require('fs'); shows = fs.readdirSync(`public/videos`); res.render('index', shows); }); module.exports = router; 但是我观察到一些有趣的东西…如果我进行下面的修改,它不再起作用,并返回一个空列表: //shows = fs.readdirSync(`public/videos`); res.render('index', fs.readdirSync(`public/videos`)); 为了使它更有趣,下面的工作: shows = fs.readdirSync(`public/videos`); res.render('index', fs.readdirSync(`public/videos`)); 在我看来,如果有某种延迟或caching,fs.readdirSync可以正常工作,但是如果在同一行上直接调用,则不会。 […]

Expressjs pm2忽略观看公共/图像文件夹

我有一个使用nodejs的网站。 问题是用户上传图片时,网站停止工作。 这是因为PM2重新启动服务器时,我认为文件更改。 如何解决这个问题呢。 谢谢

PM2环境variablescaching

我在Ubuntu 16.04上运行PM2,似乎环境variables正在被caching。 有没有办法看到哪些环境variablesPM2正在使用。 它可以以某种方式看到的环境variables不再在我的terminal会话中可用echo $VAR_NAME 。 我创build了这样的环境variables: export VAR_NAME=value 使用以下命令删除环境variables: unset VAR_NAME 不工作PM2固执地坚持环境variables – 即使在各种重启和ssh会话之后。 渲染我困惑: – / 有没有办法刷新PM2正在使用的环境variables? 或者至less看看它知道哪些环境variables?

PM2 NodeJS集群 – 在使用pm2时应该考虑同步

我的快递服务器做了一个非常简单的工作 – 将请求url保存到一个文件(通过fs.appendFile)。 我认为不使用pm2的时候工作正常,因为它只有一个进程,所以没有其他进程/线程同时保存同一个文件。 但是在使用pm2时,我不知道是否会发生两个进程同时写入同一个文件? 谢谢。

如何查看启动时传递给Node.js的pm2命令行参数?

作为服务器pipe理员,我想查看使用pm2启动Node.js服务的命令行参数。 (Node.js通过process.argv使用的) 命令pm2 show my-service-name提供有关该服务的信息,但不显示用于启动它的命令。 例如pm2 start index.js — myProcessArgument 任何人都可以告诉我在哪里我可以看到我的myProcessArgument ,甚至更好,上面的整行?

用PM2运行一个自定义的npm脚本

我目前正在开发几个电报机器人,但我想保留在同一个git存储库。 问题在于另一方面,我想把它们作为单独的进程运行。 由于我使用的是Telegraf框架,所以要运行一个机器人,例如: micro-bot src/bot-one/bot.js 这个问题出现在PM2上时。 我已经能够运行npm start脚本的机器人之一,像这样: pm2 start –name "WeatherBot" npm — start — -t < TOKEN> 但我想能够创build像这样的自定义脚本: "main": "src/weatherWarnBot/bot.js", "scripts": { "start": "micro-bot", "littleAppleBot": "micro-bot src/littleAppleBot/bot.js", "weatherWarnBot": "micro-bot src/weatherWarnBot/bot.js" } 但是,PM2命令将如何运行两个自定义脚本中的每一个? 为了简化,我正在考虑将bot代币设置为系统的环境variables。