【发布时间】:2013-01-20 15:06:18
【问题描述】:
我正在尝试使用 Apache Commons Daemon 使用 Daemon 界面来守护我的应用程序。 Java 应用程序本身并没有做任何事情,只是写给 stout。
我编译了jsvc:http://people.apache.org/~mturk/daemon-1.0.10/
(甚至尝试过最新版本:http://people.apache.org/~mturk/daemon-1.0.12/)
并编写了这个基本脚本。
do_exec()
{
$EXEC \
-home "$JAVA_HOME" \
-cp $CLASS_PATH \
-outfile $LOG_OUT \
-errfile $LOG_ERR \
-pidfile $PID \
$1 \
$MAIN_CLASS
echo "result: $?"
}
case "$1" in
start)
do_exec
;;
stop)
do_exec "-stop"
;;
restart)
do_exec "-stop"
do_exec
;;
*)
echo "usage: daemon {start|stop|restart}" >&2
exit 3
;;
esac
现在,当我尝试停止未运行的守护程序时,我会得到响应代码 255。太棒了。
但是当我尝试启动已经运行的守护进程时,我得到响应代码 0。但在我的 errfile 中我发现:
Still running according to PID file /tmp/deamon.pid, PID is 1799
Service exit with a return value of 122
当我尝试在 start() 方法中抛出异常并尝试启动守护程序时,同样的事情,响应代码为 0。但是 errfile:
Service exit with a return value of 5
我在这里缺少什么?如何通知用户 stat 守护程序未启动或已在运行?
【问题讨论】:
-
这个脚本是windows批处理文件吧?
标签: java jsvc apache-commons-daemon