如何让edeliver写入启动的phoenix服务器的pid?

How to make edeliver write pid of started phoenix server?

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

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

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

我终于找到了解决办法。 edeliver里面居然有after deploy hooks

.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 }' > ~/pepe_project
  /var/run/phoenix.pid";
    done
  fi
}