Supervisord管理Django进程

发表日期:2018年12月12日 16:40

安装Supervisord

sudo apt-get install supervisord

安装成功后执行命令生成配置文件到指定位置

echo_supervisord_conf > /home/supervisord.conf

supervisord常用配置

[inet_http_server]
port=0.0.0.0:9001 #指定外网可以访问的IP地址和端口,可以通过HTTP访问管理进程,配置时注意系统相关端口权限。
username=keycz #管理员用户名
password=Charlie@2019 #管理员密码


[program:name] #指定项目名
command=/usr/local/bin/uwsgi -i /home/ #进程的执行命令
directory=/home/ #项目目录
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile_maxbytes=20MB
stdoiut_logfile_backups=20
stderr_logfile=/home/ #错误日志文件存放位置
stdout_logfile=/home/ #日志文件存放位置

在配置完成后执行命令启用

supervisord -c /home/supervisord.conf

supervisord常用的管理命令

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  # 停止全部进程

supervisorctl reload  # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程

supervisorctl update  # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

将supervisord加入到开机启动,这样每次重启系统之后可以在开机的时候自动拉起项目进程

修改/etc/rc.local文件
将下列命令加入到exit 0之前并保存

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

supervisord -c /home/keycz/supervisord.conf
exit 0