1

jsvcを使用してJavaアプリを非デーモン化しようとしています。これは私の初期スクリプトです

#!/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

ルートとして実行する./thisscript.sh startと、2つの問題が発生し、それらが関連していると思われます。

  • アプリは起動しますが、指定された出力ファイルに保存される代わりに、その出力が表示されます
  • スクリプトは終了しませんが、を押すまでブロックされCtrl+Cます。

私は何が間違っているのですか?

4

1 に答える 1

0

起動スクリプトに問題はありません。おそらく、サービスの実装に問題がありますDeamonGameServer。クラスを単純なデーモンスケルトンの実装に置き換えてみて、何が起こるかを確認してください。

また、次の部分に未解決の欠陥があることに注意してくださいjsrvデーモン以外のすべてのスレッドが停止している場合、Jsvcは終了しません

于 2010-12-21T16:03:23.180 に答える