Hello, guys!
I want to monitor my phoenix app’s life with systemd tool
(like,omg, what if my supervisor fails).
So I need it’s pid to be stored somewhere. So I need edeliver to create pid file right after deploy.
But edeliver doesn’t seem to have after deploy hooks, only after build ones. What should I do?
How do you usually monitor your apps?
Could it be that there is a better way to know if my app is alive rather than using systemd?
1 Like
Finally managed to find the solution:
I misunderstood things and there are actually after deploy hooks in edeliver.
in .deliver/config file:
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
}
1 Like
I’d probably have the BEAM itself make a PID file during application startup or so, although my server has to work on linux and windows both. ^.^;
1 Like
Yeah, you are right!
Nothing prevents me from running lsof from the application itself.
1 Like