Ich versuche, meine Java-App mit jsvc zu deamonisieren. Das ist mein Init-SkriptJSVC InitScript wird nicht beendet
#!/bin/sh
# CONFIG
JSVC=/opt/jsvc/jsvc
JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64
USER=gserv
ARGS=none
# END CONFIG
PIDFILE=/var/run/silvercar-gameserver.pid
LOGDIR=/var/log/silvercar-gameserver
case "$1" in
start)
export JAVA_HOME
cd `dirname $0`
$JSVC -jvm server -pidfile $PIDFILE -user $USER -outfile $LOGDIR/stdout -errfile $LOGDIR/stderr \
-cp `cat classpath` tr.silvercar.gameserver.runner.DeamonGameServer $ARGS
;;
stop)
$JSVC -stop -pidfile $PIDFILE
;;
esac
exit 0
Als ich ./thisscript.sh start
als root zwei Dinge schief gehen laufen, und ich vermute, sie bezogen werden:
- Die App startet, aber sein Ausgang wird statt gespeichert auf die gezeigten spezifiziertes Outfile
- Das Skript wird nicht beendet, sondern blockiert, bis ich
Ctrl+C
drücke.
Was mache ich falsch?
Ich glaube nicht, dass mit meiner App etwas nicht stimmt. 'DaemonGameServer.start()' gibt zurück (Ich habe eine Protokollanweisung am Ende davon), aber ich werde es überprüfen. –
Hmm, ich habe das Verzeichnis für die Log-Dateien erstellt (es existierte noch nicht) und plötzlich funktioniert es jetzt. Sehr seltsam, weil es die App nicht gestartet haben sollte, wenn ein Fehler aufgetreten ist. Vielleicht habe ich auch etwas anderes verändert. –
Nun, obwohl Ihre Antwort nicht die Lösung war, hier ist ein Akzeptieren für die Mühe :) –