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以 root 身份运行时,出现了两件事,我怀疑它们是相关的:

  • 应用程序启动,但其输出显示而不是保存到指定的输出文件
  • 脚本不会退出,但会一直阻塞,直到我点击Ctrl+C.

我究竟做错了什么?

4

1 回答 1

0

我在您的启动脚本中没有发现任何问题;您的服务实现中可能存在问题DeamonGameServer。尝试用一个简单的守护进程框架实现替换你的类,看看会发生什么。

另外,请注意有一个未解决的缺陷jsrv当所有非守护线程都死了时,Jsvc 不会退出

于 2010-12-21T16:03:23.180 回答