supervisor 安装与使用
supervisor 安装与使用
-
下载
sudo apt-get install supervisor
-
在
/etc/supervisor/conf.d/
下新建xx.conf
sudo touch celery_req.conf
-
编辑配置信息
[program:celery_req] # 项目目录 directory=/home/ubuntu/cache-task/ # 执行命令 command=/home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea/bin/celery -A celery_tasks.tasks.req worker -l info # 子进程启动N秒后,如果状态为running,则认为启动成功 startsecs=1 # 哪个用户执行 user = ubuntu # 随着supervisord启动,也一并启动。 autostart=true # 日志输出 stderr_logfile=/home/ubuntu/cache-task/logs/req_stderr.log stdout_logfile=/home/ubuntu/cache-task/logs/req_stdout.log #把stderr重定向到stdout,默认 false redirect_stderr = true #stdout日志文件大小,默认 50MB stdout_logfile_maxbytes = 20MB #stdout日志文件备份数 stdout_logfile_backups = 20 [program:celery_cron] # 项目目录 directory=/home/ubuntu/cache-task/ # 执行命令 command=/home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea/bin/celery -A celery_tasks.tasks.cron worker -l info # 子进程启动N秒后,如果状态为running,则认为启动成功 startsecs=1 # 哪个用户执行 user = ubuntu # 随着supervisord启动,也一并启动。 autostart=true # 日志输出 stderr_logfile=/home/ubuntu/cache-task/logs/cron_stderr.log stdout_logfile=/home/ubuntu/cache-task/logs/cron_stdout.log [program:celery_cron_beat] # 项目目录 directory=/home/ubuntu/cache-task/ # 执行命令 command=/home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea/bin/celery -A celery_tasks.tasks.cron beat # 子进程启动N秒后,如果状态为running,则认为启动成功 startsecs=1 # 哪个用户执行 user = ubuntu # 随着supervisord启动,也一并启动。 autostart=true # 日志输出 stderr_logfile=/home/ubuntu/cache-task/logs/cron_beat_stderr.log stdout_logfile=/home/ubuntu/cache-task/logs/cron_beat_stdout.log
-
启动
supervisord
sudo supervisord -c /etc/supervisor/supervisord.conf
-
查看是否启动
sudo supervisorctl
-
添加新的配置文件
这里不要写
daemonize
日志输出 ,这会和supervisor
会起冲突。# uwsgi 配置文件 [uwsgi] # 配合nginx使用 http = 127.0.0.1:5000 # 项目路径 chdir = /home/ubuntu/cache-task # 启动模块 module = main:app # 指定工作进程 processes = 4 # 主进程 master = true # 每个工作进程有2个线程 threads = 2 # 保存主进程的进程号,要写绝对路径 pidfile = uwsgi.pid #虚拟环境环境路径 virtualenv = /home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea
这里是
supervisor
关于uwsgi.conf
的文件。# supervisor 关于uwsgi的配置文件 /etc/supervisor/conf.d/uwsgi.conf [program:uwsgi] # 项目目录 directory=/home/ubuntu/cache-task/ # 执行命令 command=/home/ubuntu/.local/share/virtualenvs/ubuntu-7Wf190Ea/bin/uwsgi --ini uwsgi.ini # 子进程启动N秒后,如果状态为running,则认为启动成功 startsecs=5 # 哪个用户执行 user=ubuntu # 随着supervisord启动,也一并启动。 autostart=true # 日志输出 stderr_logfile=/home/ubuntu/cache-task/logs/uwsgi_stderr.log stdout_logfile=/home/ubuntu/cache-task/logs/uwsgi_stdout.log
-
平滑启动
# 1. 启动 supervisor 客户端 sudo supervisorctl # 2. 读取新添加的配置文件 reread # 3. 更新配置文件 update # 4. 启动新的配置、进程名为 [program:uwsgi] 中的冒号后面自定义的部分 start 进程名 # 5. 查看状态 status
-
如果你需要读取系统变量的话,那么需要在原有的配置基础上添加
environment
# 一个变量 environment=k1=v1 # 多个变量 environment=k1=v1,k2=v2 # 或者 environment= k1=v1 k2=v2