1、介绍
supervisor是一个进程管理工具,官方的说法用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了supervisor文章源自玩技e族-https://www.playezu.com/16227.html
这个工具主要就两个命令:文章源自玩技e族-https://www.playezu.com/16227.html
supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令
supervisorctl:启动supervisor的命令行窗口。
2、安装
1)第一种方法:文章源自玩技e族-https://www.playezu.com/16227.html
pip install supervisor
2)pip的安装文章源自玩技e族-https://www.playezu.com/16227.html
1 cat pip_an.sh
2 #!/bin/bash
3 wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
4 tar zxvf setuptools-0.6c11.tar.gz
5 cd setuptools-0.6c11
6 python setup.py build
7 python setup.py install
8 wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa33326"
9 tar -xzvf pip-1.5.4.tar.gz
10 cd pip-1.5.4
11 python setup.py install
文章源自玩技e族-https://www.playezu.com/16227.html
第二种文章源自玩技e族-https://www.playezu.com/16227.html
yum install python-setuptools
easy_install supervisor
第三种文章源自玩技e族-https://www.playezu.com/16227.html
wget https://pypi.python.org/packages/source/s/supervisor/supervisor-3.1.3.tar.gz
tar zxvf supervisor-3.1.3.tar.gz
cd supervisor
python setup.py install
第四种文章源自玩技e族-https://www.playezu.com/16227.html
yum install -y epel-release
yum install -y supervisor
3、测试
#测试是否安装成功文章源自玩技e族-https://www.playezu.com/16227.html
echo_supervisord_conf
#创建配置文件文章源自玩技e族-https://www.playezu.com/16227.html
echo_supervisord_conf > /etc/supervisord.conf
#编辑配置文件文章源自玩技e族-https://www.playezu.com/16227.html
vim /etc/supervisord.conf
4、自定义配置
1)打开supervisord.cong文件后,在最后面加入文章源自玩技e族-https://www.playezu.com/16227.html
[program:ss] #ss为程序的名称
command=dotnet projectname.dll ; 运行程序的命令
directory=/root/publishing/publishoutput/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
autostart=true ; 是否自动启动
stderr_logfile=/var/log/projectname.err.log ; 错误日志文件
stdout_logfile=/var/log/projectname.out.log ; 输出日志文件
environment=aspnetcore_environment=production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=int
startsecs=1 ; 自动重启间隔
5、supervisord 常用操作
以下命令均需要root权限文章源自玩技e族-https://www.playezu.com/16227.html
supervisorctl status #查看守护程序状态
supervisorctl stop nginx #停止nginx
supervisorctl start nginx #启动nginx
supervisorctl restart nginx #重启 nginx 程序
supervisorctl reread #读取有更新(增加)的配置文件,但不会启动新添加的程序
supervisorctl update #重启配置文件修改过的程序
6、为了方便管理,我们可以添加到添加自动启动服务
vim /etc/init.d/supervisord
#!/bin/bash
#
# supervisord this scripts turns supervisord on
#
# author: mike mcgrath (based off yumupdatesd)
#
# chkconfig: - 95 04
#
# description: supervisor is a process control utility. it has a web based
# xmlrpc interface as well as a few other nifty features.
# processname: supervisord
# config: /etc/supervisord.conf
# pidfile: /var/run/supervisord.pid
#
# source function library
. /etc/rc.d/init.d/functions
retval=0
start() {
echo -n $"starting supervisord: "
daemon supervisord
retval=$?
echo
[ $retval -eq 0 ] && touch /var/lock/subsys/supervisord
}
stop() {
echo -n $"stopping supervisord: "
killproc supervisord
echo
[ $retval -eq 0 ] && rm -f /var/lock/subsys/supervisord
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload|reload)
restart
;;
condrestart)
[ -f /var/lock/subsys/supervisord ] && restart
;;
status)
status supervisord
retval=$?
;;
*)
echo $"usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
exit 1
esac
exit $retval
给予执行权限:文章源自玩技e族-https://www.playezu.com/16227.html
chmod x /etc/init.d/supervisord
这样我们就可以通过service命令管理supervisord了文章源自玩技e族-https://www.playezu.com/16227.html
如果想管理ss进程,应该用文章源自玩技e族-https://www.playezu.com/16227.html
supervisorctl {start|stop|restart} ss
查看ss在后台的状态:文章源自玩技e族-https://www.playezu.com/16227.html
ps -ef | grep servers.py
7、如何开启图形界面
1.修改配置
[supervisorctl]
serverurl=0.0.0.0:9001 ; use an http:// url to specify an inet socket
username=chris ; should be same as in [*_http_server] if set
password=123 ; should be same as in [*_http_server] if set
2.开启端口
firewall-cmd --query-port=9001/tcp //监测端口是否开启
firewall-cmd --add-port=9001/tcp //开启9001端口
firewall-cmd --remove-port=9001/tcp //关闭9001端口
sudo firewall-cmd --reload //重新加载配置
8、常见问题
1、unix:// /var/run/supervisord.sock文章源自玩技e族-https://www.playezu.com/16227.html
echo_supervisord_conf > /etc/supervisord.conf
sudo supervisord -c /etc/supervisord.conf
sudo supervisorctl status
文章源自玩技e族-https://www.playezu.com/16227.html 免责声明:本文内容来自用户上传并发布或网络新闻客户端自媒体,玩技博客仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系删除。
评论