============================================================================
原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。
请注明转自:http://yunjianfei.iteye.com/blog/
============================================================================
Supervisord是用Python实现的一款非常实用的进程管理工具,在批量服务化管理时特别有效。可以将非Daemon的应用转为daemon程序。关于supervisord的安装和配置,在网上已经有很多现成的帖子,我这里就不重复了。
在centos和rhel的环境下,我们一般是用chkconfig来管理服务的启动停止、开机自启动等。下面我列出Supervisord的服务脚本。
1. 执行如下命令:
2.输入如下内容:
注意:该文件中的如下几个变量,都需要根据你实际的目录来改写。
PREFIX=/usr/local
SUPERVISORD=$PREFIX/bin/supervisord ##supervisord 程序的安装路径
SUPERVISORCTL=$PREFIX/bin/supervisorctl ##supervisorctl 程序的安装路径
PIDFILE=/var/supervisor/supervisord.pid ##需要先创建/var/supervisor目录
LOCKFILE=/var/supervisor/supervisord.lock
OPTIONS="-c /etc/supervisord.conf" ##配置文件的路径
#!/bin/bash # # supervisord This scripts turns supervisord on # chkconfig: 345 83 04 # description: supervisor is a process control utility. It has a web based # xmlrpc interface as well as a few other nifty features. # # source function library . /etc/rc.d/init.d/functions set -a PREFIX=/usr/local SUPERVISORD=$PREFIX/bin/supervisord SUPERVISORCTL=$PREFIX/bin/supervisorctl PIDFILE=/var/supervisor/supervisord.pid LOCKFILE=/var/supervisor/supervisord.lock OPTIONS="-c /etc/supervisord.conf" # unset this variable if you don't care to wait for child processes to shutdown before removing the $LOCKFILE-lock WAIT_FOR_SUBPROCESSES=yes # remove this if you manage number of open files in some other fashion ulimit -n 96000 RETVAL=0 running_pid() { # Check if a given process pid's cmdline matches a given name pid=$1 name=$2 [ -z "$pid" ] && return 1 [ ! -d /proc/$pid ] && return 1 (cat /proc/$pid/cmdline | tr "\000" "\n"|grep -q $name) || return 1 return 0 } running() { # Check if the process is running looking at /proc # (works for all users) # No pidfile, probably no daemon present [ ! -f "$PIDFILE" ] && return 1 # Obtain the pid and check it against the binary name pid=`cat $PIDFILE` running_pid $pid $SUPERVISORD || return 1 return 0 } start() { echo "Starting supervisord: " if [ -e $PIDFILE ]; then echo "ALREADY STARTED" return 1 fi # start supervisord with options from sysconfig (stuff like -c) $SUPERVISORD $OPTIONS # show initial startup status $SUPERVISORCTL $OPTIONS status # only create the subsyslock if we created the PIDFILE [ -e $PIDFILE ] && touch $LOCKFILE } stop() { echo -n "Stopping supervisord: " $SUPERVISORCTL $OPTIONS shutdown if [ -n "$WAIT_FOR_SUBPROCESSES" ]; then echo "Waiting roughly 60 seconds for $PIDFILE to be removed after child processes exit" for sleep in 2 2 2 2 4 4 4 4 8 8 8 8 last; do if [ ! -e $PIDFILE ] ; then echo "Supervisord exited as expected in under $total_sleep seconds" break else if [[ $sleep -eq "last" ]] ; then echo "Supervisord still working on shutting down. We've waited roughly 60 seconds, we'll let it do its thing from here" return 1 else sleep $sleep total_sleep=$(( $total_sleep + $sleep )) fi fi done fi # always remove the subsys. We might have waited a while, but just remove it at this point. rm -f $LOCKFILE } restart() { stop start } case "$1" in start) start RETVAL=$? ;; stop) stop RETVAL=$? ;; restart|force-reload) restart RETVAL=$? ;; reload) $SUPERVISORCTL $OPTIONS reload RETVAL=$? ;; condrestart) [ -f $LOCKFILE ] && restart RETVAL=$? ;; status) $SUPERVISORCTL $OPTIONS status if running ; then RETVAL=0 else RETVAL=1 fi ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}" exit 1 esac exit $RETVAL
保存完毕之后,可以执行以下命令修改文件权限:
这样,supervisor就启动了。
3. 配置开机启动
执行以下命令:
可以以下命令查看是否成功
相关推荐
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor...
基于centos6.5 的 supervisor离线部署包,解压后,执行shell脚本即可完成supervisor部署操作,由于supervisor依赖于python2.7 在本安装包内,后将系统python升级到python2.7 ,如果对此操作有异议的同学需谨慎。...
Windows版的supervisord 参看https://blog.csdn.net/QQ6550523/article/details/107102748
开源项目-ochinchina-supervisord.zip,Go中的主管实施
一个用 Python 编写的 Nagios NRPE 插件,用于监控 Supervisord 服务器和由它控制的进程。 要求 Python 2.7 正常运行的 NRPE 设置获取说明 安装 将 check_supervisord.py 复制到 /usr/local/nagios/libexec/ ...
适合基于ssh秘钥的中小公司环境, 代码逻辑简单, 需要运维兄弟会一点python, 自定义与公司业务相关的功能,自行发挥.
系统启动时需要加载的配置文件 /etc/profile、/root/.bash_profile /etc/bashrc、/root/.bashrc /etc/profile.d/*.sh、/etc/profile.d/lang.sh /etc/sysconfig/i18n、/etc/rc.local(/etc/rc.d/rc.local) 一、修改...
vps,用nginx+tornado+supervisord+python部署多站点网站, 主要:nginx做反向代理服务器,负载均衡,torndao做后端服务器 用supervisor管理多进程
centos7 安装dotnet完整操作步骤,并用supervisord服务启动dotnet程序
supervisor是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程)。 语法格式: supervisord [参数] 常用参数...
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动...下面以CentOS7,Python2.7版本环境下,介绍Su
环境:CentOS 7 官方文档:http://supervisord.org/ 安装 # yum install -y epel-release ... 00:00:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf root 19715 19495 0 17:32 pts/
RPC调用服务器上的supervisord系统,以达到管理服务的目的
supervisord配置,用于守护服务进程,以及数据库进程,防止进程奔溃
python脚本supervisord是很多人用来管理进程的强大工具
$s = new Supervisord('127.0.0.1', 9001, 'username', 'password'); print_r( $s->getAllProcessInfo() ); 如何贡献 拉取请求 分叉存储库 为每个功能或改进创建一个新分支 从每个功能分支向开发分支发送拉取请求 将...
CentOS 6.x 上的 Sentry 设置脚本 是一个实时事件记录和聚合平台。 这个脚本让你在 CentOS 6.x 上用 MySQL 和 Redis 快速设置 Sentry 作为队列/缓冲区/缓存。 规格 哨兵 队列:Redis 缓冲区:Redis 缓存:Redis ...
可供初学者在学习过程中参考。少走几次度娘就能配置好supervisor
来自网易蜂巢的docker原始镜像,系统版本CentOS release 6.7 (Final)。带有基础的命令。默认命令:"Cmd": ["/usr/bin/supervisord" ]。下载方式:docker pull hub.c.163.com/public/centos:6.7-tools
CentOS + Supervisord Docker 镜像此图像旨在作为其他图像的基础。 它是模型的重建,用 CentOS 替换了 Ubuntu。 要使用它,只需将特定于应用程序的配置文件(带有 .conf 扩展名)添加到/etc/supervisor/conf.d/*....