Lavorando con appliocazioni i log sono fondamentali, soprattutto pewr lo start di servi ed altro..
Per essere sicuri che tutto sia partito correttamente bisogna trovare nei log quella parolina magica che ti tranquillizza, tipo Started, Running … od altro
A me serviva una cosa che potesse funzionare e dopo aver cercato in rete ho generato questo mostro:
cd /home/user_APP/APP_HOME
export JAVA_HOME=/home/user_app/JAVA/jdk-14.0.2
if ! [[ "$PATH" =~ "user_app" ]]; then
export PATH=/home/user_app/jdk-14.0.2/bin:$PATH
fi
for app in app1 app2 app3 app3 app4 app5
do
pyfiglet -f poison $app
cd $app
./start.sh
while IFS= read -r LOGLINE || [[ -n "$LOGLINE" ]]; do
printf '%s\n' "$LOGLINE"
[[ "${LOGLINE}" =~ "Started" ]] && break
done < <(timeout 300 tail -f Service.out)
cd ..
done
In questo modo vengono lanciate in sequenza delle diverse appX , visualizzato l’out di spingboot per verificare che non ci siano problemi.
Una piccola nota, siccome dove si trova l’applicazione viene lanciata o a mano o dall’autoscaling group di AWS , ho dovuto mettere alcune variabili di ambiente all’interno dello script ed anche la verifica dell’impostazione della variabile PATH.
ancora la riga (timeout 300 tail -f Service.out) imposta a massimo 5 minuti l’attesa per aspettare la stringa Started che da la conferma della corretta partenza del microservizio.
