2012-12-28 47 views
1

我想在我的Debian服務器上啓動jstatd作爲守護進程(這是我認爲它應該自己做的......),但我無法讓它起作用。jstatd不會作爲我的linux服務器上的守護進程啓動

如果我從命令行運行它,它會正常啓動,但會阻止終端會話。然後,我可以使用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 
... 

任何想法可能會導致這樣的行爲?

回答

1

運行jstatd作爲後臺進程通過&。作爲普通用戶從終端調用下面的命令(注意&末):/usr/bin/jstatd -J-Djava.security.policy=/usr/lib/jvm/jre1.7.0_10/bin/jstatd.all.policy &

0

也許你已經解決了這一點,但它好像有之前的「執行」中

-- exec 

空間本身。也許這是一個複製粘貼問題,但該腳本不應該工作,AFAIK

相關問題