我正在尝试编写一个简单的服务器来传达进程的状态。我了解如何使用 pm2 包并将该数据作为响应发送。从本质上讲,我正在尝试构建一个简单的 Web UI 来监视远程进程。
我遇到的问题是:
- 当我调用
pm2.list()
或pm2.jlist()
时,方法执行正常,我可以在我的pm2日志文件中看到输出,但服务器没有发回任何数据 - 当上述工作时,pm2 也会重新启动应用程序,我可以看到我的重新启动计数在上升。
这可能吗?
这是我的应用代码:
const express = require('express');
const pm2 = require('pm2')
const app = express();
const { PORT = 3000 } = process.env;
app.get('/', (req, res) => {
console.log('foo');
pm2.describe((process, err) => {
res.send(process)
})
});
app.listen(PORT, () => {
console.log(`Listening on port ${PORT}`);
});
PM2 JSON 文件
{
"name": "testPm2app",
"script": "1.js",
"watch": true,
"ignore_watch": "node_modules"
}
您对pm2.describe
的使用不正确。第一个参数应该是进程名称或进程的 ID。您可以将回调函数附加到将使用流程数据执行的第二个参数。查看下面的代码。
const express = require('express');
const pm2 = require('pm2')
const app = express();
const { PORT = 3000 } = process.env;
app.get('/', (req, res) => {
console.log('foo');
pm2.describe('testPm2app', (err, data) => {
if(err) {
res.status(500).end();
}
res.send(data);
})
});
app.listen(PORT, () => {
console.log(`Listening on port ${PORT}`);
});