`
xiaoheliushuiya
  • 浏览: 416112 次
文章分类
社区版块
存档分类
最新评论

puma 配置,启动脚本

 
阅读更多



配置: puma_server_conf.rb

#!/usr/bin/env puma

application_path = '/srv/rorapps/discount_service'
directory application_path
environment 'development'
daemonize true
pidfile "#{application_path}/tmp/pids/puma_4000.pid"
state_path "#{application_path}/tmp/pids/puma_4000.state"
stdout_redirect "#{application_path}/log/puma_4000.stdout.log", "#{application_path}/log/puma_4000.stderr.log"

port 4000
workers 8

启动开关:puma.sh


#! /usr/bin/env bash
current_path=`cd "$(dirname "$0")"; pwd`
. $current_path/function.sh

puma_file=$current_path/../puma_conf/puma_service_4000.rb
puma_pid=$current_path/../../tmp/pids/puma_4000.pid

echo "######### info #############"
echo "PUMA DISCOUNT SERVICE 4000"
echo "## $puma_file ## $puma_pid ##"
echo "############################"

case "$1" in
  start)
    puma -C $puma_file
    echo "puma_service_4000 start ............... $(command_status)"
  ;;
  status)
    check_run_status_from_pid_file $puma_pid 'puma'
  ;;
  stop)
    kill -s SIGTERM `cat $puma_pid`
    echo "puma_service_4000 stop ................ $(command_status)"
  ;;
  restart)
    # $0 stop
    # sleep 1
    # $0 start
    kill -s SIGUSR2 `cat $puma_pid`
  ;;
  *)
    echo "tip:(start|stop|restart|status)"
    exit 5
  ;;
esac
exit 0


初始文件:

MRS_DATA_PATH=`ruby $current_path/parse_property.rb MRS_DATA_PATH`
rails_env=`ruby $current_path/parse_property.rb RAILS_ENV`

processor_pid=$MRS_DATA_PATH/pids/sidekiq.pid
log_file=$MRS_DATA_PATH/logs/sidekiq.log

start:
create_file $processor_pid
create_file $log_file

parse_property.rb
require "yaml"

yaml: MRS_DATA_PATH : $HOME/DISCOUNT_SERVICE_DATA   RAILS_ENV : development
config = YAML.load_file(File.expand_path("../property.yaml",__FILE__))
key = ARGV[0]
value = config[key]
value = value.gsub(/\/$/,"")
if "MRS_DATA_PATH" == key
 `mkdir -p #{value}/logs`
 `mkdir -p #{value}/sockets`
 `mkdir -p #{value}/pids`
end


puts `echo #{value}`




工具文件 function

#! /usr/bin/env bash

function assert_process_from_name_not_exist()
{
  local pid
  pid=$(ps aux|grep $1|grep -v grep|awk '{print $2}')
  if [ "$pid" ];then
  echo "已经有一个 $1 进程在运行"
  exit 5
  fi
}

function assert_process_from_pid_file_not_exist()
{
  local pid;

  if [ -f $1 ]; then
    pid=$(cat $1)
    if [ $pid ] && [ "$(ps $pid|grep -v PID)" ]; then
      echo "$1 pid_file 中记录的 pid 还在运行"
      exit 5
    fi
  fi
}

function check_run_status_from_pid_file()
{
  local pid;
  local service_name;
  service_name=$2
  if [ -f $1 ]; then
    pid=$(cat $1)
  fi

  if [ $pid ] && [ "$(ps $pid|grep -v PID)" ]; then
    echo -e "$service_name  [\e[1;32mrunning\e[0m]"
  else
    echo -e "$service_name  [\e[1;31mnot running\e[0m]"
  fi
}

function get_sh_dir_path()
{
  echo -n $(cd "$(dirname "$0")"; pwd)
}

function command_status()
{
  if [ $? == 0 ];then
    echo -e "[\e[1;32msuccess\e[0m]"
  else
    echo -e "[\e[1;31mfail\e[0m]"
  fi
}


function create_file()
{
  local file_name;
  file_name=$1
  if [ -d file_name ]; then
    echo "Directory Exists!"
  else  
    touch file_name
  fi
}



分享到:
评论

相关推荐

    linux 安装 redmine脚本

    在Linux环境中安装Redmine是一个涉及多个步骤的过程,其中包括配置环境、安装依赖库、解压Redmine源码以及设置数据库连接等。以下是一个详尽的基于Linux的Redmine安装过程,这个过程通常会用到shell脚本,如`redmine...

    Puma英文文档.pdf

    通过 rc.d 或 Upstart 脚本,你可以启动、停止和重新启动 Puma 服务,确保应用的稳定性。 【插件与工具】 Puma 支持插件,这允许开发者扩展服务器功能以满足特定需求。了解如何安装和使用这些插件可以增强 Puma 的...

    Chef-Puma:配置Puma的厨师食谱

    该菜谱还将设置脚本以支持重新启动和分阶段重新启动。 默认情况下,puma_config将启用监视监视和通过logrotate进行日志轮转。 要求 monit,logrotate 用法 该菜谱包含两个定义:puma_install和puma_config。 puma...

    redmine-nginx-puma:在 Ubuntu 上使用 Nginx 和 Puma 运行 Redmine 的配置文件

    redmine-nginx-puma 使用 Nginx 和 Puma 安装 Redmine 的示例配置文件和文档。... 服务的启动/停止脚本 nginx /etc/nginx Nginx 配置文件 红我 /home/redmine/redmine Redmine应用程序目录 执照 这个项目是

    RUBYONRAILS服务器配置[收集].pdf

    这些配置文件包含了启动、停止程序的命令,以及设置监控规则,如进程重启次数、内存占用、CPU使用率等。 4. **项目部署**: - 使用Capistrano,一个自动化部署工具,特别是Capistrano 3版本,来简化部署流程。在...

    RUBYONRAILS服务器配置[总结].pdf

    - 对Nginx和Redis的监控,分别在`/etc/monit/conf.d/nginx`和`/etc/monit/conf.d/redis`添加配置文件,定义进程检查、启动和停止命令,以及异常情况下的响应策略,如CPU使用率、内存占用和重启频率。 5. **项目...

    api.tar.gz_in

    总结来说,这个项目是一个基于Ruby的XML-RPC API服务,包含了一个API服务器(`api.rb`)、客户端示例(`client.rb`)、项目依赖管理(`Gemfile`)、Rack配置(`config.ru`)以及启动脚本(`api_starter.sh`)。...

    ofn-install:用于配置和部署开放式食品网络的Ansible脚本

    在使用前,你需要解压该文件,然后根据提供的文档或README文件了解如何配置环境变量、编辑Ansible配置文件(如`hosts`和`group_vars`),以及如何运行Playbooks来启动部署流程。 总的来说,`ofn-install`是OFN项目...

    redmine-3.3.1

    这可以通过修改启动脚本或者在命令行中添加`RAILS_ENV=production`来实现。 5. 初始化与迁移:运行`bundle install`以安装所有必要的依赖。接着,使用`rake db:migrate`来迁移数据库,这会创建Redmine所需的表结构...

    config_files:我的配置文件

    用户可能创建了一个自定义的初始化脚本,例如`config.ru`,这是Rack应用的标准配置文件,用于启动Web服务器。 2. **YAML配置文件(.yml)** - YAML文件常用于Rails框架的配置,如`database.yml`,其中包含了数据库...

    rails-development-environment-master.rar

    压缩包中的"rails-development-environment-master.zip"可能是整个项目文件夹,包括`app`(应用代码)、`config`(配置文件)、`db`(数据库相关)、`bin`(可执行脚本)、`lib`(自定义库)、`test`(测试)、`...

    FTW-PUMA-GitHubIssuev2

    可用脚本在项目目录中,可以运行:npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。npm test 在交互式监视模式下启动测试运行...

    机器人工具箱

    通过启动"startup_rvc"脚本,用户无需手动配置环境,可以直接利用工具箱提供的功能,大大提高了开发效率。在MATLAB的集成环境中,用户可以轻松进行算法设计、模型验证和系统测试,从而推动机器人技术的创新与应用。

    frp_socket_example:函数式React式客户端响应套接字流

    在提供的压缩包文件"frp_socket_example-master"中,很可能包含了实现这个功能的Ruby代码,包括服务器端的Puma配置和客户端的套接字流处理逻辑。通过阅读和分析这些源代码,我们可以深入理解如何在Ruby环境中结合...

    redmine-4.1.1.zip

    - **启动服务**:启动Redmine应用服务器,如Passenger、Puma或Webrick。 - **升级与迁移**:如果已有旧版本的Redmine,需要执行数据库迁移脚本以更新数据结构。 4. **使用与管理** - **用户管理**:创建和管理...

    ruby-windows-64

    8. **Windows服务**: 将Ruby应用作为Windows服务运行,可以使其在系统启动时自动启动,并在后台无界面运行。利用`win32-service` gem,可以将任何Ruby脚本转换为Windows服务。 9. **错误处理和故障恢复**: 集群中的...

    Emergency-Wiki

    - **bin**:包含可执行脚本,如rails启动脚本。 - **lib**:自定义库代码。 - **test**:测试代码,如Rspec或Test::Unit测试。 Rails应用程序的开发流程通常包括编写模型、创建数据库迁移、编写控制器逻辑、设计...

    rails-rdx

    7. **bin**目录:包含可执行脚本,如rails(启动Rails命令行工具)和bundle(管理Gem依赖)。 8. **Gemfile.lock**:记录项目所有依赖及其精确版本,确保在不同环境中能一致地安装依赖。 9. **README**文件:可能...

    core_server_deploy

    使用Puma、Unicorn或其他Web服务器启动应用: ``` bundle exec puma -C config/puma.rb ``` 9. **监控与日志**: 部署后,我们需要监控应用的性能和错误,可以使用如New Relic、Logstash/Elasticsearch/Kibana...

    水晶轨道模板

    通过使用"水晶轨道模板",开发者能够快速启动一个新的Rails项目,同时利用Crystal的性能优势和静态类型的安全性。这大大提高了开发效率,降低了项目维护成本。对于希望在Ruby on Rails框架中探索和利用Crystal语言...

Global site tag (gtag.js) - Google Analytics