监视已在运行的进程

时间:2013-12-20 06:25:55

标签: god

我正在尝试监控已经运行的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。

因此,有2个进程名称为Test,一个由我启动,另一个由上帝启动。

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

1 个答案:

答案 0 :(得分:1)

好吧也许你必须给它一个pid监视你需要指定pid_file到上帝

直接来自GOD rb文档

enter image description here

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

我还建议您阅读here

上的答案

如果你仔细阅读了问题和答案(特别是当我在答案中描述c.running assign as false or true时),你可能会找到你正在寻找的确切答案

希望这个帮助