mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
70 lines
1.4 KiB
Bash
70 lines
1.4 KiB
Bash
|
#!/bin/bash
|
||
|
set -e
|
||
|
|
||
|
# Environment
|
||
|
export EJABBERD_HTTPS=${EJABBERD_HTTPS:-'true'}
|
||
|
export EJABBERD_STARTTLS=${EJABBERD_STARTTLS:-'true'}
|
||
|
export EJABBERD_S2S_SSL=${EJABBERD_S2S_SSL:-'true'}
|
||
|
|
||
|
source "${EJABBERD_HOME}/docker/lib/base_config.sh"
|
||
|
source "${EJABBERD_HOME}/docker/lib/config.sh"
|
||
|
source "${EJABBERD_HOME}/docker/lib/base_functions.sh"
|
||
|
source "${EJABBERD_HOME}/docker/lib/functions.sh"
|
||
|
|
||
|
|
||
|
# discover hostname
|
||
|
readonly nodename=$(get_nodename)
|
||
|
|
||
|
# set erlang node to node name from get_nodename
|
||
|
if [[ "$ERLANG_NODE" == "nodename" ]]; then
|
||
|
export ERLANG_NODE="ejabberd@${nodename}"
|
||
|
fi
|
||
|
|
||
|
|
||
|
run_scripts() {
|
||
|
local run_script=$1
|
||
|
local run_script_dir="${EJABBERD_HOME}/docker/${run_script}"
|
||
|
|
||
|
log "Run ${run_script} scripts..."
|
||
|
for script in ${run_script_dir}/*.sh ; do
|
||
|
if [ -f ${script} -a -x ${script} ] ; then
|
||
|
${script}
|
||
|
fi
|
||
|
done
|
||
|
}
|
||
|
|
||
|
|
||
|
_trap() {
|
||
|
run_scripts "stop"
|
||
|
log "Stopping ejabberd..."
|
||
|
$EJABBERDCTL stop
|
||
|
$EJABBERDCTL stopped
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
|
||
|
# Catch signals and shutdown ejabberd
|
||
|
trap _trap SIGTERM SIGINT
|
||
|
|
||
|
# print logfiles to stdout
|
||
|
tail -F ${LOGDIR}/crash.log \
|
||
|
${LOGDIR}/error.log \
|
||
|
${LOGDIR}/erlang.log \
|
||
|
${LOGDIR}/ejabberd.log &
|
||
|
|
||
|
# start ejabberd
|
||
|
run_scripts "pre"
|
||
|
log "Starting ejabberd..."
|
||
|
$EJABBERDCTL start
|
||
|
$EJABBERDCTL started
|
||
|
log "Ejabberd started."
|
||
|
run_scripts "post"
|
||
|
|
||
|
# run forever
|
||
|
while true; do sleep 1; done
|
||
|
|
||
|
log "Ejabberd stopped."
|
||
|
|
||
|
|
||
|
exit 0
|