rel/commands/app_terminate.sh
→ ./bin/app_a app_terminate
(PreStop hook)
#!/bin/bash -eu
COOKIE=$(awk '/-setcookie/{print$2}' releases/0.0.1/vm.args)
export COOKIE
bin/app_a command Elixir.AppA.Command app_terminate
AppA.Command
defmodule AppA.Command do
def app_terminate do
:ok = do_rpc(:"
[email protected]", :"
[email protected]",
AppA.AppTerminator, :request_terminate, [],
1_800_000)
end
defp do_rpc(target_node, node_name, module, fun, args, timeout) do
Node.start(node_name)
Node.set_cookie(String.to_atom(System.get_env("COOKIE")))
:rpc.call(target_node, module, fun, args, timeout)
end
end