厨师设置:尝试使用PM2启动节点应用程序

时间:2015-02-22 14:56:42

标签: node.js chef pm2

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

include_recipe "nodejs"
nodejs_npm "pm2"

到目前为止,这么好。但是当我尝试通过带有process.json文件的PM2启动我的节点应用程序时,它启动但是当我进入机器并运行pm2 list时,它没有列在PM2输出中......非常烦人。 / p>

我做错了,不出现在那里是对的吗?

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

1 个答案:

答案 0 :(得分: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