2013-12-20 45 views
0

我想监视已经运行的java进程。监视已经运行的进程

以下是我的上帝配置(test.god):

God.watch do |w| 
    w.name = "Test" 
    w.start = "java Test" 
    w.keepalive 

我开始神监控用下面的命令:

god -c test.god 

以下是日志:

INFO: Loading test.god 
INFO: Syslog enabled. 
INFO: Using pid file directory: /home/guest/.god/pids 
INFO: Started on drbunix:///tmp/god.17165.sock 
INFO: Test move 'unmonitored' to 'up' 
INFO: Test moved 'unmonitored' to 'up' 
INFO: Test [trigger] process is not running (ProcessRunning) 
INFO: Test move 'up' to 'start' 
INFO: Test start: java Test 
INFO: Test moved 'up' to 'up' 

正如我上面提到,我已经开始Test.java类,并开始运行,当我开始运行时&监控与上帝无法识别Test.java作为运行和它的Test.java再次。

所以有两个进程运行名为Test,一个是由我启动的,另一个是由上帝启动的。

任何人都请告诉我如何创建god配置来启动未运行的进程。我可能因为Test.java已经在运行,当我开始监视上帝时,它不应该再次启动它。只有当Test.java被杀死/停止时,神才能启动它。

+0

可能重复[神监视器的Java后台程序?(http://stackoverflow.com/questions/20610712/monitor -java-守护进程与神) –

回答

1

那么也许你必须给它一个pid监视你需要从GOD RB文档

enter image description here

w.pid_file = File.join(RAILS_ROOT, "log/mongrel.#{port}.pid") ## Your Pid file 

我也会建议你

直指定pid_file上帝阅读我的答案here

如果您仔细阅读了问题和答案(特别是当我描述01在回答意思),你可以确切的答案您正在寻找

希望这帮助