File: //sbin/init-scripts/entrypoint.sh
#!/bin/bash
INIT_PATH=/usr/sbin/init-scripts
PRESTART_SCRIPTS_PATH=$INIT_PATH/prestart
INIT_SCRIPTS_PATH=$INIT_PATH/init
PRESTOP_SCRIPTS_PATH=$INIT_PATH/prestop
run_scripts() {
local SCRIPTSPATH=$1
local PHASE=$2
for SCRIPT in $SCRIPTSPATH/*
do
if [ -f $SCRIPT -a -x $SCRIPT ]; then
echo "[entrypoint.sh] - Running script $SCRIPT"
if [[ "$PHASE" == "prestart" ]]; then
$SCRIPT
else
($SCRIPT) &
fi
fi
done
}
wall_message() {
for pts in $(ls /dev/pts/);
do
echo "Reiniciando a sua hospedagem..." >> /dev/pts/$pts;
done
}
if [[ $# -gt 0 ]]; then
KEY="$1"
# Run Pre start scripts
echo "[entrypoint.sh] - PreStart Script Hook Phase"
run_scripts $PRESTART_SCRIPTS_PATH "prestart"
if [[ $KEY == '--init' || $KEY == '-i' ]]; then
VALUE=$2
if [ $VALUE == "default" ]; then
# Run default init scripts
echo "[entrypoint.sh] - Init Script Hook Phase"
run_scripts $INIT_SCRIPTS_PATH "init"
else
exec $VALUE
fi
else
# Run custom command
exec "$@"
fi
else
exec "/bin/bash"
fi
echo "[entrypoint.sh] - Starting trap"
trap "wall_message;echo 'PreStop Script Hook Phase';run_scripts $PRESTOP_SCRIPTS_PATH 'prestop'" SIGHUP SIGINT SIGTERM
wait