supervisord 后台管理工具

1、相关介绍

supervisord是一个进程管理工具,提供web页面管理,能对进程进行自动重启等操作。
优点:
    - 可以将非后台运行程序后台运行
    - 自动监控,重启进程
缺点:
    - 不能管理后台运行程序
    - 对多进程服务,不能使用kill关闭

2、安装

安装环境:centos7
!!!如果是其他版本的操作系统需要更改命令!!!

        curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        yum install epel-release.noarch -y
        yum clean all && yum makecache
        yum install supervisor -y

安装目录:

/etc/supervicord.d/
/etc/supervisord.conf

3、编写指定的托管服务

此处为测试部署,仅供参考

 cd /etc/supervisord.d/
 ##可以修改文件名,但必须是.ini结尾
 vim nginx.ini    
 

查看配置文件

cat nginx.ini

[program:tomcat]

directory=/usr/local/tomcat/
command=/usr/local/tomcat/bin/catalina.sh run

autostart=true
startsecs=10
autorestart=true
startretries=3
user=root
priority=999
stopsignal=INT
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=30
stdout_logfile=/opt/log/nginx/nginx_status.log
stopasgroup=true

配置文件需要修改的地方


[program:tomcat]    #tomcat  此处为启动服务是的名称

directory=/usr/local/tomcat/   ###服务的安装目录
command=/usr/local/tomcat/bin/catalina.sh run   ###服务的启动命令,具体路径
stdout_logfile=/opt/log/nginx/nginx_status.log ### 服务启动日志的存放路径,需要手动创建目录

编写supervisord 的开机自启动

vim /usr/lib/systemd/system/supervisord.service 

[Unit] 

Description=Process Monitoring and Control Daemon 

After=rc-local.service nss-user-lookup.target 


[Service] 

Type=forking 

ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf


[Install] 

WantedBy=multi-user.target 



设置开机自启动

systemctl enable supervisord.service

4、管理命令:

supervisorctl stop program_name  # 停止某一个进程,program_name 为 [program:x] 里的 x
 
supervisorctl start program_name  # 启动某个进程
 
supervisorctl restart program_name  # 重启某个进程
 
supervisorctl stop groupworker:  # 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)
 
supervisorctl stop groupworker:name1  # 结束 groupworker:name1 这个进程 (start,restart 同理)
 
supervisorctl stop all  # 停止全部进程,注:start、restartUnlinking stale socket /tmp/supervisor.sock
、stop 都不会载入最新的配置文件
 
supervisorctl reload  # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
 
supervisorctl update  # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

在这里插入图片描述

5、一键安装脚本

#!/bin/bash
#The author email:2331233079@qq.com

echo -e   "例如   tomcat"
read -p "请输入需要托管的服务名称:" name
while [ -z $name ];
 do
  if [ -z $name ];
   then
    echo -e   "例如可以输入:tomcat"
    read -p "请输入需要托管的服务名称:" name
   else
    break
  fi
 done

echo -e   "例如  /usr/local/tomcat/"
read -p "请输入服务的安装目录:" directory
while [ -z $directory ];
 do
  if [ -z $directory ];
   then
    echo -e   "例如  /usr/local/tomcat/"
    read -p "请输入服务的安装目录:" directory
   else
    break
  fi
 done

echo -e "例如 /usr/local/tomcat/bin/catalina.sh run "
read -p "请输入服务的启动命令:" command
while [ -z $command ];
 do
  if [ -z $command ];
   then
    echo -e "例如 /usr/local/tomcat/bin/catalina.sh run "
    read -p "请输入服务的启动命令:" command
   else
    break
  fi
 done

mkdir $directory/logs-supervisor/

stdout_logfile=$directory/logs-supervisor/

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release.noarch -y
yum clean all && yum makecache
yum install supervisor -y

cat > /etc/supervisord.d/$name.ini << EOF

[program:$name]

directory=$directory
command=$command

autostart=true
startsecs=10
autorestart=true
startretries=3
user=root
priority=999
stopsignal=INT
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=30
stdout_logfile=$stdout_logfile/$name-status.log
stopasgroup=true
EOF

if [ -f /usr/lib/systemd/system/supervisord.service ];
   then
    sleep 1
   else
cat > /usr/lib/systemd/system/supervisord.service << EOF
[Unit] 

Description=Process Monitoring and Control Daemon 

After=rc-local.service nss-user-lookup.target 


[Service] 

Type=forking 

ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf


[Install] 

WantedBy=multi-user.target 
EOF

fi
cat >> /etc/motd << EOF
------------------------------
查看$name 运行状态
supervisorctl status $name
重启$name服务 
supervisorctl restart $name
停止$name服务
supervisorctl stop $name
EOF
systemctl enable supervisord.service
systemctl restart  supervisord.service


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值