start-stop-daemon和java程序

时间:2012-03-26 01:42:03

标签: java arm start-stop-daemon angstrom-linux

我正忙着使用start-stop-daemon在init脚本中正确启动java程序。我已经编写了init脚本,它似乎在运行,但之后从来没有一个进程代表正在运行的程序。

这是我的初始化脚本的片段

#! /bin/sh
#
#

DAEMON="/usr/bin/java"
DAEMON_ARGS="-server -cp <bunch of RMI arguments and classpath stuff> -jar <absolute path>/myprog.jar"

PIDFILE="/var/run/myprog.pid"

case "$1" in
start)
    echo -n "Starting myprog"
    start-stop-daemon --start --pidfile "$PIDFILE" --chuid "myuser" --verbose --background --make-pidfile --startas "$DAEMON" -- $DAEMON_ARGS
    echo "."
;;

当我尝试通过/etc/init.d启动它时,我得到以下内容:

/etc/init.d# /etc/init.d/myscript start

启动myprogStarting / usr / bin / java ...

重启以启动/ usr / bin / java ...完成。

之后,没有运行java解释器进程,执行myprog.jar

我尝试过各种--exec, - start的组合或多或少相同的结果。如果我能更清楚地了解正在发生的事情,我相信我可以解决这个问题,但我不确定该怎么办。

有什么建议吗?

(我在嵌入式ARM平台上运行Angstrom,因此Java Service Wrapper实际上不是一个可行的选择,即我认为它不适用于ARM)

我被困了所以任何建议都会非常感激。

感谢。

2 个答案:

答案 0 :(得分:14)

要尝试两件事,首先尝试删除--startas并使用--exec代替:

start-stop-daemon --start --pidfile "$PIDFILE" --chuid "myuser" --verbose --background --make-pidfile --exec "$DAEMON" -- $DAEMON_ARGS

第二,因为您使用--background尝试指定--chdir选项,否则工作目录最终为/

我最终绊倒了你试图解决我的问题的问题,最终由--chdir解决,我相信它也会解决你的问题。

答案 1 :(得分:-4)

您正在寻找一种运行方式并能够监控它吗?

你有没有试过ms批量dos编程呢?

例如

@echo off
cd DirectoryOfFiles
echo "Starting up..."
java -Xmx512m mainFile
pause

mainFile = main.java? DirectoryOfFiles =您拥有所有类文件的目录,如果运行文件是同一目录,只需删除此行

希望这就是你所要求的