Linux下使用Supervisord管理服务

Linux下使用Supervisord管理服务

------------》Supervisord官方文档

部署Supervisord

安装Supervisord

# pip安装
$ pip install supervisor

# 其他安装
$ su -c 'curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo' 
$ yum install mono-devel -y 
$ yum install python-setuptools -y 
$ easy_install supervisor

配置Supervisord

# 生成配置文件
$ echo_supervisord_conf > /etc/supervisord.conf

# 使用Systemd管理Supervisord服务
$ cat > /usr/lib/systemd/system/supervisord.service < < EOF
[Unit]
Description=supervisord - Supervisor process control system for UNIX
Documentation=http://supervisord.org
After=network.target

[Service]  
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecReload=/usr/bin/supervisorctl reload
ExecStop=/usr/bin/supervisorctl shutdown 
#User=root
KillMode=process
Restart=on-failure
RestartSec=50s 

[Install]
WantedBy=multi-user.target
EOF

编辑Supervisord需要管理的服务

例如我需要Supervisord管理我的一个微服务api_server
微服务存放在/data/servers/apiapps/,启动方式是api_server server

$ vim /data/config/supervisor/api_server.conf
# 编辑一个配置文件然后添加以下内容,实际使用情况请根据自己决定在修改
[program:api_server]  #这里就是后面启动服务关闭服务的名字,这里api_server就是我的服务
directory=/data/servers/apiapps/
command=/data/servers/apiapps/api_server server
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/data/servers/apiapps/log/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/data/servers/apiapps/log/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB

$ vim /etc/supervisord.conf
# 编辑supervisord.conf配置文件找到include项添加files内容,让它读取我们上一步的配置文件内容
[include] 
files = /data/config/supervisor/*.conf

$ systemctl daemon-reload
$ systemctl enable supervisord
$ systemctl start supervisord
# 执行以上三条命令,如果你配置无误,你的api_server服务就会启动起来了,ps -ef | grep "api_server"就会在后台由supervisord管理

Supervisord常用命令

$ supervisorctl start api_server
$ supervisorctl stop api_server
$ supervisorctl restart api_server
# 其他详细内容可以supervisorctl -h查看

# 这样子就不用我们通过/data/server/apiapps/api_server server来启动服务了

其实在CentOS 7中,你使用系统的Systemd管理你的微服务等其他服务已经大大满足你的所有需求了,如果你技术OK的话。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值