Hi,

ich habe ein Shell script das in etwa so aussieht:
Code:
WORK_DIR=/opt/app
LIB_DIR=$WORK_DIR/libs

JAVA_CMD=/usr/java/jdk1.8.0_141/bin/java

ARGS_JAVA="-Xmx4096m -Xms256m -Dlog4j.configuration=/opt/config/log4j.properties"

export CLASSPATH="-classpath \
$LIB_DIR/commons-cli.jar:\
$LIB_DIR/commons-lang3-3.6.jar:\
...
$LIB_DIR/slf4j-api.jar:\
$LIB_DIR/slf4j-log4j12.jar:\
$LIB_DIR/xml-apis.jar"

cd $WORK_DIR
export ARGS="$ARGS_JAVA $ARG_DEBUG"
$JAVA_CMD -version
$JAVA_CMD $ARGS $CLASSPATH com.team.application $*
cd -
Das script wird wie folgt gestartet:
./script.sh -parameter1
oder zuletzt eben auch mit ./script.sh -parameter1 2>&1 | tee -a log_2018-04-10.log

Prinzipiell läuft die Anwendung auch gut, nur manchmal sind die Daten zu viel und die Java Anwendung erliegt dem "Java heap space out of memory" - das ist auch "OK", nur:
1) Die Exception wird nicht geloggt
klar log4J kann sie nicht mehr loggen, aber auch wenn ich mit "2>&1 | tee " umleite bleibt sie nicht im script output log file zu sehen.
Wie bekomme ich die Exception auch in mein script log file?

2) Das script läuft nicht weiter.
Es sieht aus als würde der Java Prozess die weiter Fortführung des Scripts blockieren - Die letzte ausgabe ist die Exception - aber es wird nicht zum Prpt der shell zurück gekehrt.
Ist das normal? Was kann ich machen damit dies geschieht?