我想在我的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
...你知道是什么导致了这样的行为吗?
发布于 2012-12-29 04:39:08
通过&将jstatd作为后台进程运行。作为普通用户从终端调用以下命令(注意&在末尾):/usr/bin/jstatd -J-Djava.security.policy=/usr/lib/jvm/jre1.7.0_10/bin/jstatd.all.policy &
发布于 2013-04-05 02:00:45
也许你已经解决了这个问题,但似乎在
-- exec 在“执行”本身之前。也许这是一个复制粘贴的问题,但是这个脚本不应该工作,AFAIK
https://stackoverflow.com/questions/14072049
复制相似问题