1

Debian サーバーで jstatd をデーモン プロセスとして起動したい (これは、単独で実行する必要があると考えていたものです ...) が、動作させることができないようです。

コマンド ラインから実行すると、正常に起動しますが、ターミナル セッションがブロックされます。その後、VisualVM を使用してプロセスをリモートで監視できます (そうです!)。しかし、^c を押してセッションを制御するとすぐに、jstatd が終了します。

それでは、init.d スクリプトを使用して実行してみましょう。

繰り返しますが、正常に動作しますが、ターミナル セッションがまだブロックされています。

私の開始コマンドは

/usr/bin/jstatd -J-Djava.security.policy=/usr/lib/jvm/jre1.7.0_10/bin/jstatd.all.policy

前述のように、コマンドを実行するとプロセスが表示されるため、正常に動作します。

init.d スクリプトでは、次のようになります。

#!/bin/sh
set -e
NAME=jstatd
PIDFILE=/var/run/$NAME.pid
DAEMON=/usr/bin/jstatd
DAEMON_OPTS="-J-Djava.security.policy=/usr/lib/jvm/jre1.7.0_10/bin/jstatd.all.policy

case "$1" in
   start)
     start-stop-daemon --start --quiet --pidfile $PIDFILE -- exec $DAEMON -- $DAEMON_OPTS
...

そのような行動を引き起こしている可能性のあるアイデアはありますか?

4

2 に答える 2

1

jstatd&を介してバックグラウンドプロセスとして実行します。通常のユーザーは、ターミナルから次のコマンドを呼び出します(最後に&に注意してください)。/usr/bin/jstatd -J-Djava.security.policy=/usr/lib/jvm/jre1.7.0_10/bin/jstatd.all.policy &

于 2012-12-28T20:39:08.380 に答える
0

すでに解決済みかもしれませんが、

-- exec 

「exec」自体の前。コピーと貼り付けの問題かもしれませんが、そのスクリプトは機能しないはずです、AFAIK

于 2013-04-04T18:00:45.297 に答える