新版博客SEO优化基本完成,新老博客内容正在整合中,保证每篇文章高质量。 SiteMap RSS Github
使用Supervisor管理进程
嘉美伯爵   2018年10月11日 21:49   运维   Supervisor   188  

supervisor安装

  • 全局安装,控制虚拟环境
pip install supervisor
  • 生成配置文件
echo_supervisord_conf  >/etc/supervisord.conf
  • 修改配置文件
vi /etc/supervisord.conf

# 修改最后两行,将前两行分号去掉   .conf 文件的 ; 和 # 为注释
[include]
files = /etc/supervisor/*.conf
  • 配置子进程(根据下面的格式进行配置)
mkdir /ect/supervisor
touch web.conf  # 文件名可自定义
vi /ect/supervisor/web.conf

programs=Django-8999

[program:Django-8999]
command=/data/env2/pyweb/bin/uwsgi -x /data/wwwroot/blog/blog.xml
directory=/data/wwwroot/blog
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/home/log/Django.log
loglevel=info

supervisor 自启动

  • 新建
vi /usr/lib/systemd/system/supervisord.service
  • 配置
[Unit]
Description=supervisor
After=network.target

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

[Install]
WantedBy=multi-user.target
  • 设置
systemctl enable supervisord
systemctl is-enabled supervisord   # 验证一下是否为开机启动

supervisorctl 交互后台

supervisorctl

> status    # 查看程序状态
> stop tornadoes:*   # 关闭 tornadoes组 程序
> start tornadoes:*  # 启动 tornadoes组 程序
> restart tornadoes:*    # 重启 tornadoes组 程序
> update    # 重启配置文件修改过的程序

相关命令

  • 查看所有已启动的服务
systemctl list-units --type=service

配置说明

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3