2017-01-31 6 views
0

Ich deploy Phoenix-Anwendung mit Edeliver auf meinem Server. Im Falle eines plötzlichen Server Neustarts möchte ich meine Phoenix-App automatisch wiederbeleben und überwachen lassen. Es scheint, dass Systemd Tool mir helfen kann, aber es erfordert Phoenix irgendwo gespeichert werden.How to make edeliver schreiben pid von gestartet phoenix server?

Gibt es eine Möglichkeit, Edeliver speichern Phoenix pid Datei direkt nach der Bereitstellung? Vielleicht gibt es einen besseren Weg als Systemd, um die Anwendung nach dem Neustart des Servers wieder zu beleben und zu überwachen?

Hinweis: Ich bin vor allem daran interessiert, Pid zu überwachen.

Antwort

1

Endlich habe ich die Lösung gefunden. Es gibt tatsächlich nach dem Deploy Hooks in edeliver.

In .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 [email protected]${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 
}