【问题标题】:chef setup: trying to start node app with PM2厨师设置:尝试使用 PM2 启动节点应用程序
【发布时间】:2015-02-24 07:30:02
【问题描述】:

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

include_recipe "nodejs"
nodejs_npm "pm2"

到目前为止,一切都很好。但是,当我尝试通过 PM2 使用 process.json 文件启动我的节点应用程序时,它会启动,但当我 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
      }
    }
  ]
}

【问题讨论】:

  • 你有执行资源“通过PM2启动节点应用程序”的厨师客户端日志跟踪吗?如果您在 ssh 会话中运行该命令,它是否有效?
  • @JavierCortejoso 它只说execute[start node app via PM2] ran successfully
  • 这是因为你用另一个用户启动了process.json,然后当你ssh并做一个pm2列表时,它只列出你当前的进程用户。

标签: node.js chef-infra pm2


【解决方案1】:

这是因为你用另一个用户启动了 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多