【问题标题】:How to make edeliver write pid of started phoenix server?如何让edeliver写启动的phoenix服务器的pid?
【发布时间】:2017-01-31 09:13:43
【问题描述】:

我将带有 edeliver 的 phoenix 应用程序部署到我的服务器。如果服务器突然重启,我希望我的 phoenix-app 能够自动恢复并受到监控。似乎 systemd 工具可以帮助我,但它需要将 phoenix pid 文件存储在某处。

有没有办法让 edeliver 在部署后立即保存 phoenix pid 文件? 也许有比 systemd 更好的方法来在服务器重启后恢复和监控应用程序?

注意:我最感兴趣的是监控 pid。

【问题讨论】:

    标签: elixir phoenix-framework systemd edeliver


    【解决方案1】:

    我终于设法找到了解决方案。 edeliver 里面其实有 after deploy 钩子。

    .deliver/config:

    post_start_deployed_release() {
      if [ "$TARGET_MIX_ENV" = "prod" ]; then
        echo ${PRODUCTION_HOSTS};
        arr=(echo ${PRODUCTION_HOSTS});
        for host in ${arr[@]}; do
          ssh pepe@${host} "mkdir -p ~/pepe_project/var/run && /usr/sbin/lsof -i:4000 | grep beam.smp | awk '{print $2}' > ~/pepe_project
      /var/run/phoenix.pid";
        done
      fi
    }
    

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 1970-01-01
      • 2017-08-16
      • 2015-06-25
      • 2017-12-04
      • 1970-01-01
      • 2021-08-08
      • 2017-09-07
      • 2019-10-09
      相关资源
      最近更新 更多