Execute seu script com o bash e use a construção de substituição do processo para executar o registro. Dessa forma, seu processo "principal" ainda será executado com o mesmo id de processo que o shell.
Enquanto você está nisso, use uma matriz para JAVA_OPTIONS
, já que é uma lista de palavras. Dessa forma, seu script não será interrompido, mesmo se $TMP_DIR
ou $SCALATRA_ENV
contiverem caracteres especiais de shell.
#!/bin/bash
set -e
XNAME="hellofellow_1"
SCALATRA_ENV="development"
TMP_DIR="tmp/$XNAME/"
JAVA_OPTIONS=(-Xmx2024M -XX:MaxPermSize=512M)
LOGFILE="logs/$XNAME.log"
PORT="8080"
JAVA_OPTIONS=("${JAVA_OPTIONS[@]}" "-Djava.io.tmpdir=$TMP_DIR")
JAVA_OPTIONS=("${JAVA_OPTIONS[@]}" "-Dorg.scalatra.environment=$SCALATRA_ENV")
cd "$(dirname "$0")/../"
rm -rf "$TMP_DIR"/*
exec java "${JAVA_OPTIONS[@]}" -jar current/myJarFile.jar "$PORT" \
> >(multilog t s131072 n100 '!/bin/gzip' /my/log/dir)