linux如何设置Supervisor启动多个进程并监控自动重启?
网友回复
安装supervisor
1、首先安装一个supervisor
pip install supervisor
2、生成配置文件
cd /usr/local/bin/
echo_supervisord_conf > /etc/supervisord.conf
3、编辑配置文件
vi /etc/supervisord.conf
4、最后面加上以下配置
[include] files = /etc/supervisor/*.conf
这是存放进被管理的进程的配置文件
5、开启web控制台,找到如下几行,去掉注释
[inet_http_server] ; inet (TCP) server disabled by default port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface username=user ; default is no username (open server) password=123456 ; default is no password (open server)
之后可以通过web界面登录管理,查看日志等 6、添加管理进程的配置文件
mkdir /etc/supervisor/ 通过vi创建文件 vi /etc/supervisor/amazon_server.conf
接下来是program的配置: ;amazon_server.conf [program:amazon_server] ;程序名 directory = /root/amazon_server ; 程序的启动目录 command = python app.py ; 启动命令,可以看出与手动在命令行启动的命令是一样的 autostart = true ; 在 supervisord 启动的时候也自动启动 startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了 autorestart = true ; 程序异常退出后自动重启 startretries = 3 ; 启动失败自动重试次数,默认是 3 numprocs= 4 ;启动多个进程,不设置就是单进程启动 user = root ; 用哪个用户启动 redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false stdout_logfile_maxbytes = 100MB ; stdout 日志文件大小,默认 50MB stdout_logfile_backups = 10 ; stdout 日志文件备份数 ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件) stdout_logfile = /root/amazon_server/app.log
如需管理多个不同的进程,那就配置多个文件 启动supervisor supervisord -c /etc/supervisord.conf 查看管理进程的状态 supervisorctl status 关闭,启动,重启 supervisorctl stop|start|restart test1 关闭supervisor
ps -ef | grep super,然后kill -9 杀进程 注意,直接杀掉supervisor的主进程,被管理的进程仍然运行状态,所以记得先stop被管理的进程。
如果修改了各个配置文件,都需要重启supervisor。 浏览器访问IP地址:9001,打开web控制台,输入我们配置文件设置的用户和密码
在控制台可以方便得重启,停止,查看日志,非常方便,在运维时,为了安全性,只需搭建一个supervisor管理平台,里面安装常用的tomcat,httpd,nginx,oracle,mysql等,结合supervisor多进程管理web控制台,会一点电脑知识的人培训下就能掌握。只是supervisor不支持跨机进程监控。
配置中文说明 [unix_http_server] file=/tmp/supervisor.sock ;UNIX socket 文件,supervisorctl 会使用 ;chmod=0700 ;socket文件的mode,默认是0700 ;chown=nobody:nogroup ;socket文件的owner,格式:uid:gid
[inet_http_...
点击查看剩余70%