1、安装 god
gem install god 2、设置环境变量 以及开机启动的rc.local 文件 ,其内容如下PATH=$PATH:/zhiyisoft/bin god -c /etc/god/god.god备注: 请将 ruby bin目录下的所有文件链接到 /zhiyisoft/bin 下面,否则将无法运行如果是 rvm ,请执行下方命令 1、 rvm wrapper 2.0.0@rails3 boot up god 2、 /usr/local/rvm/bin/bootup_god 或者 $HOME/.rvm/bin/bootup_god 替换rc.local 3、创建 /etc/god/god.god文件rails_env = ENV['RAILS_ENV'] || 'development'rails_root = ENV['RAILS_ROOT'] || "/zhiyisoft/app/phonebook"project_name = "phonebook"# 以上部分为配置,请根据情况修改God.watch do |w|w.name = "#{project_name}" w.interval = 30.seconds # default w.start = "cd #{rails_root} && bundle exec puma --config #{rails_root}/config/puma.conf -e #{rails_env} -d; echo $?;" w.stop = "kill -TERM `cat #{rails_root}/tmp/puma.pid`" w.restart = "kill -USR2 `cat #{rails_root}/tmp/puma.pid`" w.start_grace = 10.seconds w.restart_grace = 10.seconds w.pid_file = "#{rails_root}/tmp/puma.pid" w.uid = "root" w.gid = "root" w.behavior(:clean_pid_file) w.start_if do |start| start.condition(:process_running) do |c| c.interval = 5.seconds c.running = false end end w.restart_if do |restart| restart.condition(:memory_usage) do |c| c.above = 300.megabytes c.times = [3, 5] # 3 out of 5 intervals end restart.condition(:cpu_usage) do |c| c.above = 50.percent c.times = 5 end end # lifecycle w.lifecycle do |on| on.condition(:flapping) do |c| c.to_state = [:start, :restart] c.times = 5 c.within = 5.minute c.transition = :unmonitored c.retry_in = 10.minutes c.retry_times = 5 c.retry_within = 2.hours end endendGod.watch do |w| w.dir = "#{rails_root}"w.name = "#{project_name}_clear" w.interval = 60.seconds w.env = {"RAILS_ENV"=>rails_env} w.uid = 'root' w.gid = 'root' w.start = "bundle exec rake daemon:clear_queue" w.keepaliveend4、项目里面创建 config/puma.conf 其内容如下 rails_env = ENV['RAILS_ENV'] || 'development'threads 4,16#bind "unix:///tmp/puma.sock"bind "tcp://0.0.0.0:9090"pidfile "/tmp/pid"state_path "/tmp/state"activate_control_app备注 :此文件需要按需调整