我正在使用nodejs食谱来安装nodePM2模块。

include_recipe "nodejs"
nodejs_npm "pm2"


到目前为止,一切都很好。但是,当我尝试使用process.json文件通过PM2启动我的节点应用程序时,它会启动,但当我SSH进入计算机并运行pm2 list ...时,它并未在PM2输出中列出...太令人讨厌了。

我在做错什么事吗?

execute "start node app via PM2" do
  cwd "/share/app"
  command "pm2 startOrRestart process.json"
end


process.json看起来像这样:

{
  "apps": [
    {
      "name": "app",
      "script": "src/index.js",
      "watch": true,
      "ignore_watch": ["[\\/\\\\]\\./", "node_modules"],
      "merge_logs": true,
      "exec_interpreter": "node",
      "env": {
        "NODE_ENV": "local",
        "port": 8080
      }
    }
  ]
}

最佳答案

这是因为您与另一个用户一起启动了process.json,然后在ssh并执行pm2列表时,它仅列出了当前的进程用户。

为避免这种情况,您有两种选择:


用相同的用户执行pm2 start process.json
设置PM2_HOME环境变量,以便所有用户都可以访问同一PM2实例。例如PM2_HOME='/etc/.pm2' pm2 start process.json && PM2_HOME='/etc/.pm2' pm2 list

关于node.js - 厨师设置:尝试使用PM2启动 Node 应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28659253/

10-12 23:19