Supervisor Centos7下离线安装

Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程,并且提供web页面。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

因为Supervisor是Python开发的,安装前先检查一下系统否安装了Python2.4以上版本。下面以CentOS7,Python2.7版本环境下,介绍Supervisor的安装与配置步聚:

1. 离线包下载安装

安装supervisor的之前需要安装两个依赖,我这里把需要的安装包上传到/opt/HuaShan/Supervisor目录下。

安装setuptools: setuptools下载

# tar -zxvf setuptools-0.6c11.tar.gz 

# cd setuptools-0.6c11

# python setup.py build

# python setup.py install

安装meld3 meld3下载

# cd /opt/HuaShan/Supervisor

# tar -zxvf meld3-1.0.2.tar.gz

# cd meld3-1.0.2

# python setup.py install

安装supervisor:Supervisor下载

# cd /opt/HuaShan/Supervisor

# tar -zxvf supervisor-3.3.4.tar.gz

# cd supervisor-3.3.4

# python setup.py install

验证supervisor安装是否成功

# supervisorctl --help

2. 配置 

1) 创建文件夹和配置文件(root用户) 

# mkdir -p /etc/supervisor

# echo_supervisord_conf > /etc/supervisor/supervisord.conf

2) 进程管理配置参数,不建议全都写在supervisord.conf文件中,应该每个进程写一个配置文件放在include指定的目录下包含进supervisord.conf文件中

创建/etc/supervisor/config.d目录,用于存放进程管理的配置文件 

# mkdir -p /etc/supervisor/config.d

3) 修改/etc/supervisor/supervisord.conf文件内容, 将/etc/supervisor/conf.d目录添加到include中

#  vim  /etc/supervisor/supervisord.conf

把  ;[include] 改为  [include]

在文件结尾[include]节点处(*.ini foo.conf config??.ini)

;files = relative/directory/*.ini 改为  files = /etc/supervisor/config.d/*.ini

# grep -n '^'[[a-Z]  /etc/supervisor/supervisord.conf   //方便查看内容

# cd /etc/supervisor

3 . 启动

本文主要讲如何离线安装supervisor,如何配置、使用、页面客户端、启动参考另一篇文章,点击这里

4. 离线脚本安装

#!/bin/bash
#currentUser=$(whoami)
#if [ "$currentUser" != "root" ];then
#	echo "当前用户为非root,请切换用户:${currentUser}"
#	exit 1
#fi

# 安装supervisor
function installSupervisor()
{
	echo "*安装supervisor"
	cd ${currentpath}
	mkdir Supervisor
	cp -r tools/*.gz  Supervisor/
	cd Supervisor
	
	#安装setuptools
	tar -zxvf setuptools-0.6c11.tar.gz 
	cd setuptools-0.6c11
	python setup.py build
	python setup.py install
	if [ $? -ne 0 ]; then
		echo -e "\033[31m*安装setuptools失败 \033[0m"
		return 1
	fi
	echo "*安装setuptools成功"
	
	#安装meld3
	cd ${currentpath}/Supervisor
	tar -zxvf meld3-1.0.2.tar.gz
	cd meld3-1.0.2
	python setup.py install
	if [ $? -ne 0 ]; then
		echo -e "\033[31m*安装meld3失败 \033[0m"
		return 1
	fi
	echo "*安装meld3成功"
	
	
	#安装supervisor
	cd ${currentpath}/Supervisor
	tar -zxvf supervisor-3.3.4.tar.gz
	cd supervisor-3.3.4
	python setup.py install
	
	#验证supervisor安装是否成功
	supervisorctl --help
	if [ $? -ne 0 ]; then
		echo -e "\033[31m*安装supervisor失败 \033[0m"
		return 1
	fi
	echo "*安装supervisor成功"
	
	#创建文件夹和配置文件
	mkdir /etc/supervisor
	echo_supervisord_conf > /etc/supervisor/supervisord.conf
	mkdir -p /etc/supervisor/config.d
	sed -i "s/\;\[include\]/\[include\]/g" /etc/supervisor/supervisord.conf
	sed -i "s/;files = relative\/directory\/\*.ini/files = \/etc\/supervisor\/config.d\/\*.ini/g" /etc/supervisor/supervisord.conf
	if [ $? -ne 0 ]; then
		echo -e "\033[31m*配置supervisor失败 \033[0m"
		return 1
	fi
	echo "*配置supervisord.conf成功"
	
	#配置登陆Web页面
	echo "[inet_http_server]">> /etc/supervisor/supervisord.conf
	echo "port=0.0.0.0:9001">> /etc/supervisor/supervisord.conf
	echo "username=admin">> /etc/supervisor/supervisord.conf
	echo "password=123456">> /etc/supervisor/supervisord.conf
	
	#拷贝*ini文件到目录下
	\cp -r ${currentpath}/config.d/*.ini   /etc/supervisor/config.d
	if [ $? -ne 0 ]; then
		echo -e "\033[31m*拷贝*ini文件到/etc/supervisor/config.d目录失败 \033[0m"
		return 1
	fi
	echo "*拷贝*ini文件到/etc/supervisor/config.d目录成功"
	
	#返回根目录
	cd ${currentpath}
	return 0
}

# 配置supervisor开机启动
function supervisorSystemd()
{
	#将/etc/rc.d/rc.local 文件标记为可以执行文件
	chmod +x /etc/rc.d/rc.local
	
	# 判断匹配函数,匹配函数不为0,则包含给定字符
	if [ `grep -c "supervisord -c /etc/supervisor/supervisord.conf" /etc/rc.d/rc.local` -eq '0' ];then
		#打开 /etc/rc.d/rc.local 文件,在最后添加supervisord -c /etc/supervisor/supervisord.conf	
		echo "sleep 10">> /etc/rc.d/rc.local	#防止启动失败,睡眠十秒
		echo "source /root/.bash_profile">> /etc/rc.d/rc.local	#确保环境变量生效
		echo "source /etc/profile">> /etc/rc.d/rc.local
		echo "supervisord -c /etc/supervisor/supervisord.conf">> /etc/rc.d/rc.local
		echo "*supervisor添加开机自启"
		
	else
		echo "*supervisor已配置开机启动"
	fi
}


echo "*******************************"
echo "*       开始安装              *"
echo "*******************************"

currentpath=$(pwd)
echo "**当前安装目录:" ${currentpath}

# 安装supervisor
installSupervisor
res=`echo $?`
if [ $res = "1" ]; then
	exit 1
fi

#添加开机自启
supervisorSystemd


# 启动supervisor
supervisord -c /etc/supervisor/supervisord.conf	
if [ $? -ne 0 ]; then
	cd ${currentpath}
	echo -e "\033[31m启动supervisor失败 \033[0m"
	exit 1
fi
echo "*启动supervisor成功"

# 清除安装包
#rm -rf tools
#rm -rf config.d

echo "*******************************"
echo "*       安装完成              *"
echo "*******************************"

编写不易,如果有帮助到您,喜欢点赞!

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值