如何让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
}
我将带有 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
}