Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js pm2-如何以编程方式获取/访问进程状态?_Node.js_Pm2 - Fatal编程技术网

Node.js pm2-如何以编程方式获取/访问进程状态?

Node.js pm2-如何以编程方式获取/访问进程状态?,node.js,pm2,Node.js,Pm2,我正在尝试编写一个简单的服务器,它可以传递进程的状态。我了解如何使用pm2软件包并将数据作为响应发送。本质上,我正在尝试构建一个简单的web UI来监视远程进程 我面临的问题是: 当我调用pm2.list()或pm2.jlist()时,这些方法执行得很好,我可以在我的pm2日志文件中看到输出,但服务器没有发送任何数据回来 当上述工作,pm2也重新启动应用程序,我可以看到我的重新启动计数上升 这可能吗 以下是我的应用程序代码: const express = require('express'

我正在尝试编写一个简单的服务器,它可以传递进程的状态。我了解如何使用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.description的使用不正确。第一个参数应该是进程名称或进程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}`);
});