2

我正在使用nodejs说明书来安装nodePM2模块。

include_recipe "nodejs"
nodejs_npm "pm2"

到目前为止,一切都很好。但是,当我尝试通过 PM2 使用 process.json 文件启动我的节点应用程序时,它会启动,但当我 ssh 进入机器并运行时,它并没有在 PM2 输出中列出pm2 list……非常烦人。

我做错了什么不出现在那里是正确的吗?

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
      }
    }
  ]
}
4

1 回答 1

2

这是因为您使用另一个用户启动了 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
于 2015-02-23T23:30:02.470 回答