#!/bin/bash

# load environment variables from /etc/environment
eval $(sed 's/^/export /' /etc/environment)

function coredump_in_progress {
  portoctl list | grep -q "app/sub_main/core"
}

set -u

chain_name=restart
restart_delay=12
tmp_file=/tmp/manage-balancer-restart

touch "$tmp_file"
/usr/bin/manage-balancer close "$chain_name" || true

sleep $restart_delay

pid=$(pidof $APPLICATION)

kill "$pid" &>/dev/null

for i in {1..30}; do
    sleep 0.5
    kill -0 "$pid" &>/dev/null || exit 0
done

if coredump_in_progress; then
    for i in {1..30}; do
        sleep 1
        kill -0 "$pid" &>/dev/null || exit 0
        coredump_in_progress || break
    done
fi

kill -9 "$pid" &>/dev/null

rm "$tmp_file" &>/dev/null || true
/usr/bin/manage-balancer open "$chain_name" || true
