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

备注 :此文件需要按需调整

转载于:https://blog.51cto.com/tianbymy/1408478

Debian rails Puma god 开机启动相关推荐

  1. 嵌入式linux debian开机启动脚本编写

    一.介绍 debian和其他linux开机启动有所区别,这里给出开机启动的编写方法 二.示例 示例模板 #!/bin/sh ### BEGIN INIT INFO # Provides: test # ...

  2. Debian 9.x “stretch“ 解决 /etc/rc.local 开机启动问题

    Debian 9.x "stretch" 解决 /etc/rc.local 开机启动问题 参考文章: (1)Debian 9.x "stretch" 解决 /e ...

  3. Debian添加开机启动项

    Linux系统设置开机启动有很多方法,网上也有许多详细教程.本文只关注用 update-rc.d 命令给 Debian 添加开机启动. 例如:将test.sh脚本添加到开机自启. 1.将 test.s ...

  4. linux fcitx启动 窗口,Linux系统Fcitx中文输入法开机启动方法

    Debian.FC.Ubuntu的默认中文输入法都是SCIM,其实也挺好用的,有点类似windows下微软拼音输入法,而fcitx则有点类似windows下的紫光输入法,喜欢哪一个要看个人习惯了.我试 ...

  5. linux debain systemd 开机启动 nodejs 兼容原initd启动 forever 开机自启

    布署环境为debian 7.5 布署到一台新机器,系统版本为debian 8.0 原启动项 /etc/init.d/mongo_service 开机居然无法自起 开机自启动不能用了,看页面输出就发觉不 ...

  6. linux 开机启动文件夹,Linux开机启动流程

    linux开机启动详细流程图: 一.BIOS 加电自检 当你按电源开关开机时,电脑会首先去启动BIOS(基本输入输出系统),BIOS一般是集成在主板上的. BIOS 的工作 1.检测连接硬件,比如显卡 ...

  7. ubuntu16 自启动mysql_Ubuntu16.04关闭apache/mysql/php的开机启动

    关闭apache2服务: 安装sysv-rc-conf sudo apt-get install sysv-rc-conf 运行sysv-rc-conf sudo sysv-rc-conf 将apac ...

  8. Ubuntu下添加开机启动脚本

    [转载]Ubuntu下添加开机启动脚本 原文地址:http://blog.163.com/yangshuai126%40126/blog/static/173426265201092810164155 ...

  9. 计算机开机启动流程详解

    一.BIOS 1.BIOS是什么 BIOS:基本输入输出系统(Basic Input Output System),它是一组固化到计算机内主板上一个ROM(Read-Only Memory)只读存储器 ...

最新文章

  1. 极客新闻——19、如何从单体架构平滑过渡到微服务
  2. MindMotion MM32F3277 SoftI2C功能测试
  3. 搭建可视化网页的software package_网页制作与网站搭建步骤教程
  4. Routeros双adsl线路基于ip分段策略路由
  5. (转)国外软件外包项目网站(适用软件兼职)
  6. Oracle 的基本特点,并完整描述安装过程
  7. 用户控件如何控制ASPX页面的控件
  8. 转载 cFos vs cFosSpeed
  9. java记录类型_Java中的记录类型
  10. 搭建Hexo博客(一)-创建Hexo环境
  11. CLion之C++框架篇-安装工具,基础框架的搭建(一)
  12. Android 运行时异常 Binary XML file line # : Error inflating class
  13. 用于数据输入的基本WPF窗口功能
  14. 简单工厂(Simple Pattern)模式
  15. 【Pycharm】连接远程服务器并进行代码上传、调试
  16. @Responsebody与@RequestBody
  17. cartographer原理简述
  18. BC95方案NBIOT入网配置教程
  19. 阿里云 socket 服务器配置
  20. 编写一个简单的JavaScript模板引擎

热门文章

  1. 如何用hover写出顺畅的动态效果
  2. Python: 没有switch-case语句
  3. 【转】mysqldump的锁表的问题
  4. 一种NVMe SSD友好的数据存储系统设计
  5. itop修改附件上传大小限制
  6. 使用CSS如何解决inline-block元素的空白间距
  7. [Android应用]《花界》V1.0 正式版隆重发布!
  8. python 列表转为字典的两个小方法
  9. 华夏幸福发布2018年业绩简报 整体销售面积同比增57.56%
  10. 5-Python3从入门到实战—基础之数据类型(列表-List)