legendary-doc-site/script/server-clustered
2021-06-18 21:57:11 +00:00

33 lines
784 B
Bash
Executable file

#!/usr/bin/env bash
set -x
set -e
DIR_PATH=$(dirname $0)
$DIR_PATH/update
trap_with_arg() { # from https://stackoverflow.com/a/2183063/804678
local func="$1"; shift
for sig in "$@"; do
trap "$func $sig" "$sig"
done
}
stop() {
trap - SIGINT EXIT
printf '\n%s\n' "received $1, killing child processes"
kill -s SIGINT 0
}
trap_with_arg 'stop' EXIT SIGINT SIGTERM SIGHUP
CLUSTER_COOKIE=`openssl rand -hex 8`
PORT=4002 elixir --sname two --cookie $CLUSTER_COOKIE -S mix phx.server 2>/dev/null &
PORT=4003 elixir --sname three --cookie $CLUSTER_COOKIE -S mix phx.server 2>/dev/null &
PORT=4004 elixir --sname four --cookie $CLUSTER_COOKIE -S mix phx.server 2>/dev/null &
$DIR_PATH/proxy &
PORT=4001 iex --sname one --cookie $CLUSTER_COOKIE -S mix phx.server