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
備註 :此文件需要按需調整
Debian rails Puma god 開機啓動
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.