Boot hooks are scripts which execute pre/post to events that occur in the boot script.
Currently, that is
pre/post_stop. These scripts are simply
shell scripts which will be sourced into the boot script during execution.
Given a config like the following:
use Mix.Releases.Config environment :default do set pre_start_hook: "rel/hooks/pre_start" set post_start_hook: "rel/hooks/post_start" end release :myapp do set version: current_version(:myapp) end
And the two hook scripts under
# pre_start echo "we're starting!"
# post_start echo "we've started!"
When you build your release, and run it, you’ll see something like the following:
> _build/dev/rel/myapp/bin/myapp foreground we're starting! ...snip... we've started! ...snip...
You have access to anything defined in the boot script’s environment, see Shell Script API for details.