supervisor进程管理工具
supervisor学习
-
首先安装Supervisor,系统自带pip,因为截至目前Supervisor还不支持Python3,不过并不影响使用。
pip install supervisor
-
为了方便,创建目录结构,来管理Supervisor有关的文件:
/root/etc ├── supervisor │ ├── conf.d │ └── var │ ├── log └── supervisord.conf
-
首先建立上述的目录结构
mkdir -p ~/etc/supervisor/conf.d mkdir -p ~/etc/supervisor/var/log
-
然后进入
~/etc
目录下生成Supervisor的配置文件cd ~/etc echo_supervisord_conf > supervisord.conf
-
进入
supervisord.conf
:vim supervisord.conf
-
首先找到
[unix_http_server]
,更改配置,指定supervisor.sock
文件位置。[unix_http_server] file=/root/etc/supervisor/var/supervisor.sock
-
更改
[supervisord]
配置:[supervisord] logfile=/root/etc/supervisor/var/log/supervisord.log pidfile=/root/etc/supervisor/var/supervisord.pid user=root
-
更改
[supervisorctl]
配置:[supervisorctl] serverurl=unix:///root/etc/supervisor/var/supervisor.sock
-
更改
[include]
配置:[include] files = /root/etc/supervisor/conf.d/*.ini
-
在
conf.d
新建一个文件newprocess.ini
配置uwsgi
[program:uwsgi] command=/opt/west_env/bin/uwsgi --ini /opt/west_coast__company_project/west_coast__company_project/uwsgi.ini directory=/opt/west_coast__company_project/west_coast__company_project/ # 开始等待时间 startsecs=0 # 停止等待时间 stopwaitsecs=0 autostart=true # 进程意外退出时重启 autorestart=true # 进程运行的用户,防止权限问题 user=root stdout_logfile=/root/etc/supervisor/var/log/newprocess-stdout.log stderr_logfile=/root/etc/supervisor/var/log/newprocess-stderr.log [program:nginx] command=/usr/sbin/nginx directory=/usr startsecs=0 stopwaitsecs=0 autostart=true autorestart=true user=root stdout_logfile=/root/etc/supervisor/var/log/nginx-stdout.log stderr_logfile=/root/etc/supervisor/var/log/nginx-stderr.log [program:redis] command=systemctl start redis directory=/etc startsecs=0 stopwaitsecs=0 autostart=true autorestart=true user=root stdout_logfile=/root/etc/supervisor/var/log/redis-stdout.log stderr_logfile=/root/etc/supervisor/var/log/redis-stderr.log [program:mysql] command=systemctl start mariadb directory=/etc startsecs=0 stopwaitsecs=0 autostart=true autorestart=true user=root stdout_logfile=/root/etc/supervisor/var/log/mysql-stdout.log stderr_logfile=/root/etc/supervisor/var/log/mysql-stderr.log
-
启动管理进程命令
/usr/bin/supervisord -c ~/etc/supervisord.conf
-
查看是否启动成功
ps -ef | grep supervisor
-
进入 supervisorctl 进程管理控制台 :
/usr/bin/supervisorctl -c ~/etc/supervisord.conf
-
启动
reload start all stop all restart uwsgi(uwsgi指定program配置名字)
2简化版配置
# 生成自定义文件
vim supervisorconf.conf
# 配置信息如下:
# 此处只配置uwsgi即可,nginx是守护进程所以可以不用supervisor管理
[program:uwsgi_process]
command = /opt/west_env/bin/uwsgi --ini /opt/west_coast__company_project/west_coast__company_project/uwsgi.ini
directory = /opt/west_coast__company_project
startsecs = 0
stopwaitsecs = 0
autostart = true
autorestart = true
stdout_logfile=/root/etc/supervisor/var/log/newprocess-stdout.log
stderr_logfile=/root/etc/supervisor/var/log/newprocess-stderr.log
[supervisord]
loglevel = info
[inet_http_server]
port = :9001
username = root
password = 123
[supervisorctl]
serverurl = http://127.0.0.1:9001
username = root
password = 123
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterfac
- 注意:执行supervisorctl 交互式操作时,stop 无法关闭uwsgi原因是,uwsgi内配置文件 注释掉 daemonize ,然后别忘了reload
# 指定文件启动服务
/usr/bin/supervisord -c ~/etc/supervisorconf.conf
# 此时开启交互模式,然后启动交互式
/usr/bin/supervisorctl -c ~/etc/supervisorconf.conf
supervisor > start 命program名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库