版权声明:本文为博主原创文章,未经博主同意不得转载。

https://blog.csdn.net/menxu_work/article/details/24547923

配置: 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
}

puma 配置,启动脚本的更多相关文章

  1. HBase配置&启动脚本分析

    本文档基于hbase-0.96.1.1-cdh5.0.2,对HBase配置&启动脚本进行分析 date:2016/8/4 author:wangxl HBase配置&启动脚本分析 剔除 ...

  2. Spark配置&启动脚本分析

    本文档基于Spark2.0,对spark启动脚本进行分析. date:2016/8/3 author:wangxl Spark配置&启动脚本分析 我们主要关注3类文件,配置文件,启动脚本文件以 ...

  3. Jenkins|简单Job配置|启动脚本|测试报告

    目录 1.Jenkins安装 2.Jenkins启动脚本 3.节点配置 4.任务配置 5.集成HTML测试报告 1.Jenkins安装 操作环境:Ubuntu jenkins针对windows,ubu ...

  4. Redis 3 在CentOS 6.5上安装笔记,含启动脚本

    Redis的强大就不多说了,直接上菜. 第1步:下载.编译.安装 cd /opt wget http://download.redis.io/releases/redis-3.0.5.tar.gz . ...

  5. gitlab6 nginx配置和启动脚本

    gitlab6 nginx配置和启动脚本 cheungmine 2013-10 最近把gitlab安装到了ubuntu12.04.3的虚拟机上了.参考: https://github.com/gitl ...

  6. Centos 配置开机启动脚本启动 docker 容器

    Centos 配置开机启动脚本启动 docker 容器 Intro 我们的 Centos 服务器上部署了好多个 docker 容器,因故重启的时候就会导致还得手动去手动重启这些 docker 容器,为 ...

  7. Windows 用bat脚本带配置启动redis,并用vb脚本使其在后台运行。

    最近,在Windows上用开发PHP程序,需要用到Redis,每天要打开一个运行redis-server.exe的窗口这样比较烦,因为窗口就一直打开着,不能关闭. 所以就想着通过写脚本的方式,让他在后 ...

  8. Linux安装配置maven以及搭建nexus私服(编写启动脚本)

    2011年07月12日16:32  下面介绍在Linux操作系统下安装配置maven和搭建nexus私服. 一.安装前的准备 下载 jdk http://www.oracle.com/technetw ...

  9. (转)mysql5.6.7多实例安装、配置的详细讲解分析及shell启动脚本的编写

    一.mysql安装 1.下载mysql数据库源码包: wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz 2.安装mys ...

  10. ubuntu系统自动配置开机启动脚本

    以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢  https://www.linuxidc.com/Linux/2017-09/1471 ...

随机推荐

  1. java 包 和 物理目录 解惑

    今天做 JUnit 实验, 发现在物理实际不同的目录(src, testsrc)下可以使用相同的包名, 并且在这两个目录下, 都有个子目录 coolUnit (这个子目录是配合 package 使用的 ...

  2. 三种CSS方法实现loadingh点点点的效果

    我们在提交数据的时候,在开始提交数据与数据提交成功之间会有一段时间间隔,为了有更好的用户体验,我们可以在这个时间段添加一个那处点点点的动画,如下图所示: 汇总了一下实现这种效果主要有三种方法: 第一种 ...

  3. MapReduce的InputFormat过程的学习

    转自:http://blog.csdn.net/androidlushangderen/article/details/41114259 昨天经过几个小时的学习,把MapReduce的第一个阶段的过程 ...

  4. WHERE 子句用于规定选择的标准。

    WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句. 语法 SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 下面的运算符可在 WHERE ...

  5. malloc 返回值的类型是 void *

    malloc 返回值的类型是 void *,所以在调用 malloc 时要显式地进行类型转换,将 void * 转换成所需要的指针类型. #include <iostream> using ...

  6. npoi导出excel_asp.net MVC

    下载路径: http://files.cnblogs.com/files/gaocong/npoi_for_mysql_mvc.rar

  7. XAML 中使用空格键(空白字符)

    默认情况下,XAML折叠所有空白,这意味着包含空格.tab 键以及回车的长字符串将被转换为单个空格.而且,如果在一个元素内容之前或之后添加空白,这个空格将被完全忽略. 有时这并不是所期望的结果.例如, ...

  8. 如何用sql语句复制一张表

    如何用sql语句复制一张表 1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete ...

  9. input的disable和readonly

    在设计网页时,有时需要将输入框设置为只读状态,即其中的内容不可编辑,实现这种设计的方法有两种:使用input的disable和readonly两个属性. 先来看下二者的区别: <input ty ...

  10. oracle11g配置dataguard

     DATAGUARD是通过建立一个PRIMARY和STANDBY组来确立其参照关系.      STANDBY一旦创建,DATAGUARD就会通过将主数据库(PRIMARY)的REDO传递给STAND ...