我将带有 edeliver 的 phoenix 应用程序部署到我的服务器。如果服务器突然重启,我希望我的 phoenix-app 能够自动恢复并受到监控。似乎 systemd 工具可以帮助我,但它需要将 phoenix pid文件存储在某处。
有没有办法让 edeliver 在部署后立即保存 phoenix pid文件?也许有比 systemd 更好的方法来在服务器重启后恢复和监控应用程序?
注意:我最感兴趣的是监控 pid。
我将带有 edeliver 的 phoenix 应用程序部署到我的服务器。如果服务器突然重启,我希望我的 phoenix-app 能够自动恢复并受到监控。似乎 systemd 工具可以帮助我,但它需要将 phoenix pid文件存储在某处。
有没有办法让 edeliver 在部署后立即保存 phoenix pid文件?也许有比 systemd 更好的方法来在服务器重启后恢复和监控应用程序?
注意:我最感兴趣的是监控 pid。
我终于设法找到了解决方案。实际上在 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
}