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

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. PHP——内测:新闻管理练习题及答案(自己做的)

    试题看文件:1.28练习内测:新闻管理.pdf 数据库为newssystem 表为news 表内容为 fabuxinwen.php <!DOCTYPE html PUBLIC "-// ...

  2. git init 与 git init --bare 区别

    git init 与 git init --bare 区别 发现问题 最早是在公司的wiki上发现了这个命令,google后发现值得记录下来 实践中发现的区别 网上找了很多资料,但说的很乱,干脆在自己 ...

  3. C#调用Oracle存储过程

    C#调用Oracle存储过程的代码如下所示: using System; using System.Collections.Generic; using System.Collections.Obje ...

  4. Android性能测试框架Emmagee

    目前移动设备,尤其是Android设备,相对于过去的J2me时代,硬件有大幅度的提高,并且更新地非常快,可以安装和运行更多的应用. 但是目前安卓市场对于应用的要求并不如苹果商店那么严格,Android ...

  5. 004Maven_Pom.xml文档的介绍

    很重要的一个文档,具体介绍如下:

  6. 使用ANT编译项目报错 com.sun.image.codec.jpeg does not exist 解决方法

    项目开发中在对图片进行裁切处理的时候,有时候是会使用到 com.sun 包下的类时. 假设项目使用ant编译,会出现错误 com.sun.image.codec.jpeg does not exist ...

  7. python入门(七):CGI编程

    CGI CGI(Common Gateway Interface),通用网关接口,HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. CGI在其中扮演的是在we ...

  8. Tomcat服务器的安装与配置

    安装 输入网址进入Tomcat的官网            在左边导航栏选择对应下载的版本            下载安装包形式             下载并解压到我们欲放入的目录中 配置      ...

  9. Masonry介绍与使用实践 - iOS移动开发周报

    本文转发至 http://www.tuicool.com/articles/MRbaEnB/ 原文  http://www.infoq.com/cn/news/2014/11/masonry-intr ...

  10. Android屏幕和尺寸

    DisplayMetrics dm=new DisplayMetrics(); //获取的像素高度不包含虚拟键所占空间 ((WindowManager)context.getSystemService ...