我正在尝试监控已经运行的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被杀死/停止时,上帝应该启动它。
答案 0 :(得分:1)
好吧也许你必须给它一个pid监视你需要指定pid_file到上帝
直接来自GOD rb文档
w.pid_file = File.join(RAILS_ROOT, "log/mongrel.#{port}.pid") ## Your Pid file
我还建议您阅读here
上的答案如果你仔细阅读了问题和答案(特别是当我在答案中描述c.running assign as false or true
时),你可能会找到你正在寻找的确切答案
希望这个帮助