0

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

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

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

4

1 回答 1

1

我终于设法找到了解决方案。实际上在 edeliver 中有部署后的钩子。

.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
}
于 2017-01-31T12:51:42.913 回答