Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程)
包含 安装supervisor的依赖文件、supervisor程序、加入开机自启、检查状态等操作 install_supervisor.sh脚本内容
#!/bin/bash
cd /home/ctier
sudo apt-get update
sudo apt-get install -y python-pkg-resources python2.7-meld3 subversion
sudo wget http://softpkg.rd.chanjet.com.cn/ops/pkgname/python-supervisor_3.1.3_all.deb
sudo dpkg -i /home/ctier/python-supervisor_3.1.3_all.deb > /dev/null 2>&1
sudo /usr/local/bin/supervisord -c /etc/supervisord.conf
sudo supervisorctl status
echo_supervisord_conf > /etc/supervisord.conf
supervisord -c /etc/supervisord.conf
ps aux | grep supervisord
vim /etc/supervisord.conf
在配置文件底部,配置include
[include]
files=/etc/supervisor/*.conf #若你本地无/etc/supervisor目录,请自建
cd /etc/supervisor
vim ossfs.conf # 这里写你要守护的进程的配置文件的名称(自定义)
配置文件这样写
; 设置进程的名称,使用 supervisorctl 来管理进程时需要使用该进程名 [program:your_program_name] command=python server.py --port=9000 ;numprocs=1 ; 默认为1 ;process_name=%(program_name)s ; 默认为 %(program_name)s,即 [program:x] 中的 x directory=/home/python/tornado_server ; 执行 command 之前,先切换到工作目录 user=oxygen ; 使用 oxygen 用户来启动该进程 ; 程序崩溃时自动重启,重启次数是有限制的,默认为3次 autorestart=true redirect_stderr=true ; 重定向输出的日志 stdout_logfile = /var/log/supervisord/tornado_server.log loglevel=info
supervisorctl reload
supervisord : 启动supervisor supervisorctl reload :修改完配置文件后重新启动supervisor supervisorctl status :查看supervisor监管的进程状态 supervisorctl start 进程名 :启动XXX进程 supervisorctl stop 进程名 :停止XXX进程 supervisorctl stop all:停止全部进程,注:start、restart、stop都不会载入最新的配置文件。 supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
vim /etc/supervisord.conf
修改配置文件
[inet_http_server]
port=0.0.0.0:9001 ; 对所有ip都可以访问
username=xxx ;自定义
password=xxx ;自定义
最后重置supervisor
supervisorctl reload
网页端管理