新手问题 God terminate 总是关不掉进程

as181920 · 2014年07月14日 · 最后由 as181920 回复于 2014年07月17日 · 2669 次阅读

试用 god 来运行和管理一些后台常驻进程和任务,

简单如这几行

God.watch do |w|
  w.name = "logstash_agent"
  w.start = "cd /dyne/apps/logstash-1.4.2 && bin/logstash -f config/agent.conf"
  w.log = "/home/git/logs/logstash_agent.log"
  w.keepalive
end

有 java 的,有 rackup 运行 thin 的,有 ruby 死循环+sleep 的,当需要关闭 terminate 的时候,进程很多都没有关掉,

如果 restart 的话,通常就是多起一个进程。

哪里姿势不对?

kill -QUIT $(God 的 pid)

试试

你看一下 bin/logstash 是不是一个 shell 脚本,如果是的话,找找看有没有保存 java 进程的 pid,然后在 God 增加 pid_file 参数

http://godrb.com/ 搜索看看 pid_file 怎么用

logstash_agent 的 pid 你保存在那里? 你要告诉 god 怎么关闭你的 logstash_agent

#1 楼 @huacnlee 这是 killgod 本身,会同时发指令给关联子进程的意思?本地 god 开的 java 进程是不会关掉的,ruby 进程在服务器上找机会测试;

#3 楼 @alvin2ye pid 没有指定,放默认~/.god/pids 下了,关闭和重启我没有写指令,回头可以试试手动指定关闭和重启的代码,Thx

需要 登录 后方可回复, 如果你还没有账号请 注册新账号