使用supervisor管理进程
supervisor 使用python写的,可以通过pip 安装,目前只支持python2
虽然supervisor安装在了python2环境下(一般为系统环境),但是 supervisor当中的进程会用到相应虚拟环境的包,所以启动supervisor之前应当切换到对应虚拟环境中
pip2 install supervisor
workon <虚拟环境名称>
cd AdslProxy
#运行以下命令即可启动服务
supervisord -c supervisor_api.conf
以后要想管理 supervisor中的进程,可以通过以下命令进入supervisor控制台
supervisorctl -c supervisor_api.conf
status # 查看状态
start programe_name # 启动程序
restart programe_name # 重新启动程序
stop programe_name # 关闭程序
reload programe_name # 重新加载配置文件
quit # 退出控制台
supervisor.conf 配置实例
#supervisor的程序名字
[program:proxy_api]
# supervisor执行的命令
command=python3 api.py
# 项目的目录
directory = /home/shiqinying/AdslProxy
# 开始的时候等待多少秒
startsecs=0
# 停止的时候等待多少秒
stopwaitsecs=0
# 自动开始
autostart=true
# 程序挂了后自动重启
autorestart=true
# 注意!!!如果服务在非root用户下运行,log文件配置在/var/log/下,会因为没有权限访问/var/log/而无法启动进程而报错
#所以最好配置在服务运行的目录下
# 输出的log文件
stdout_logfile=/home/shiqinying/AdslProxy/proxy_api_supervisord.log
# 输出的错误文件
stderr_logfile=/home/shiqinying/AdslProxy/proxy_api_supervisord.err
[supervisord]
# log的级别
loglevel=debug
[inet_http_server]
# supervisor的服务器,所有ip可访问 (服务器)
port = :9001
# 用户名和密码
username = admin
password = 123
# 使用supervisorctl的配置
[supervisorctl]
# 使用supervisorctl登录的地址和端口号
serverurl = http://127.0.0.1:9001
# 登录supervisorctl的用户名和密码(客户端)
username = admin
password = 123
# 必须启用,supervisorctl 通过它来管理进程
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
网友评论