start-stop-daemonを使用して、initスクリプトでJavaプログラムを適切に起動するのにかなりの時間を費やしています。私は init スクリプトを書きましたが、実行されているように見えますが、実行中のプログラムを表すプロセスはその後ありません。
これが私の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
myprog を開始しています/usr/bin/java を開始しています...
/usr/bin/java を開始するために切り離しています...完了。
.
その後、myprog.jar を実行している Java インタープリター プロセスは実行されていません。
--exec と --start のさまざまな組み合わせを試しましたが、ほぼ同じ結果が得られました。何が起こっているのかをもう少し可視化できれば、これを理解できると確信していますが、それを行う方法さえわかりません。
助言がありますか?
(組み込みARMプラットフォームでAngstromを実行しているため、Java Service Wrapperは実際には実行可能なオプションではありません。つまり、ARMで利用できるとは思いません)
行き詰まっているので、アドバイスをいただければ幸いです。
ありがとう。