Debian rails Puma god 開機啓動

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
 end
end

God.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.keepalive
end

4、項目裏面創建 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

備註 :此文件需要按需調整

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章