首页 > 代码库 > Debian rails Puma god 开机启动
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
备注 :此文件需要按需调整
本文出自 “天边一抹云” 博客,请务必保留此出处http://tianbymy.blog.51cto.com/1928962/1408478