puma 配置,启动脚本
版权声明:本文为博主原创文章,未经博主同意不得转载。
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 配置,启动脚本的更多相关文章
- HBase配置&启动脚本分析
本文档基于hbase-0.96.1.1-cdh5.0.2,对HBase配置&启动脚本进行分析 date:2016/8/4 author:wangxl HBase配置&启动脚本分析 剔除 ...
- Spark配置&启动脚本分析
本文档基于Spark2.0,对spark启动脚本进行分析. date:2016/8/3 author:wangxl Spark配置&启动脚本分析 我们主要关注3类文件,配置文件,启动脚本文件以 ...
- Jenkins|简单Job配置|启动脚本|测试报告
目录 1.Jenkins安装 2.Jenkins启动脚本 3.节点配置 4.任务配置 5.集成HTML测试报告 1.Jenkins安装 操作环境:Ubuntu jenkins针对windows,ubu ...
- Redis 3 在CentOS 6.5上安装笔记,含启动脚本
Redis的强大就不多说了,直接上菜. 第1步:下载.编译.安装 cd /opt wget http://download.redis.io/releases/redis-3.0.5.tar.gz . ...
- gitlab6 nginx配置和启动脚本
gitlab6 nginx配置和启动脚本 cheungmine 2013-10 最近把gitlab安装到了ubuntu12.04.3的虚拟机上了.参考: https://github.com/gitl ...
- Centos 配置开机启动脚本启动 docker 容器
Centos 配置开机启动脚本启动 docker 容器 Intro 我们的 Centos 服务器上部署了好多个 docker 容器,因故重启的时候就会导致还得手动去手动重启这些 docker 容器,为 ...
- Windows 用bat脚本带配置启动redis,并用vb脚本使其在后台运行。
最近,在Windows上用开发PHP程序,需要用到Redis,每天要打开一个运行redis-server.exe的窗口这样比较烦,因为窗口就一直打开着,不能关闭. 所以就想着通过写脚本的方式,让他在后 ...
- Linux安装配置maven以及搭建nexus私服(编写启动脚本)
2011年07月12日16:32 下面介绍在Linux操作系统下安装配置maven和搭建nexus私服. 一.安装前的准备 下载 jdk http://www.oracle.com/technetw ...
- (转)mysql5.6.7多实例安装、配置的详细讲解分析及shell启动脚本的编写
一.mysql安装 1.下载mysql数据库源码包: wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.27.tar.gz 2.安装mys ...
- ubuntu系统自动配置开机启动脚本
以前一直搞的centos配置开机启动脚本,但是相同方法用在ubuntu系统上就不管用了,非常伤脑筋. 非常感谢 https://www.linuxidc.com/Linux/2017-09/1471 ...
随机推荐
- VS中C#读取app.config数据库配置字符串的三种方法(转)
关于VS2008或VS2005中数据库配置字符串的三种取法 VS2008建立Form程序时,如果添加数据源会在配置文件 app.config中自动写入连接字符串,这个字符串将会在你利用DataSet, ...
- MongoDB(一):关系型数据库和非关系型数据库
一.关系型数据库 1.概念 关系型数据库:是指采用了关系模型来组织数据的数据库,是目前各类数据库中使用最为广泛的数据库系统.简单的说,关系模型指的就是二维表格模型,一个关系型数据库就是由二维表及其之间 ...
- php 返回上一页并刷新
echo "<script>alert('分组已存在!');location.href='".$_SERVER["HTTP_REFERER"].&q ...
- Fiddler是最强大最好用的Web调试工具之一--网站抓包分析
Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...
- Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。
Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试. 它是一个典型的教科书式的mvc ...
- 《网络编程》非堵塞 I/O
概述 在前面文章中,我们介绍了 I/O 的五种模型<I/O 模型>.从那里能够知道,非堵塞式的 I/O 是进程调用 I/O 操作时.若数据未准备就绪.则马上返回一个 EWOULDBLOCK ...
- thinkphp中phpexcel的使用
1.下载phpexcel文件(之前提到过!) 2.下载后将文件放到: 3.在控制器中引用: 4.部分实现的代码: public function OutputExcel($data) //导入订单 { ...
- Linux命令在线中文手册
很好的Linux学习手册:http://linux.51yip.com/ 来源:http://blog.51yip.com/
- cocos2d怎么设置屏幕朝向?横屏 or 竖屏设置
在cocos引擎里面找了好久.没找到相关接口,网上也搜索了好久,最后发现.原来须要依据各个平台分别进行设置. android 改动项目根文件夹 proj.android\AndroidManifest ...
- datatable详解(angular-datatable)+后台分页(springmvc)
datable常规配置,百度一大堆 function prepareDatatable(selector, options) { var defaultOptions = { autoWidth: t ...