33 lines
		
	
	
	
		
			784 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			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
 |