Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
Supervisor能干什么?Supervisor帮助我们解决在开发过程中遇到的以下问题:
ASP.NET Core应用程序运行在shell之中,如果关闭shell则会发现ASP.NET Core应用被关闭,从而导致应用无法访问,这种情况当然是我们不想遇到的,而且生产环境对这种情况是零容忍的。
如果ASP.NET Core进程意外终止那么需要人为连进shell进行再次启动,往往这种 *** 作都不够及时。
如果服务器宕机或需要重启我们则还是需要连入shell进行启动。
安装Supervisor首先安装Python包管理工具(Supervisor使用Python开发的),然后再安装supervisor。
yum install python-setuptoolseasy_install supervisor
supervisor安装完成后会生成三个执行程序:
supervisortd :supervisor的守护进程服务(用于接收进程管理命令)
supervisorctl :客户端(用于和守护进程通信,发送管理进程的指令)
echo_supervisord_conf :生成初始配置文件程序。
配置Supervisor添加supervisor文件夹以及conf.d配置文件夹
mkdir /etc/supervisorecho_supervisord_conf > /etc/supervisor/supervisord.confmkdir /etc/supervisor/conf.d
修改supervisord.conf文件,在文件尾部:
[include]files=/etc/supervisor/conf.d/*.conf启动Supervisor服务
supervisord -c /etc/supervisor/supervisord.confprogram的配置
在supervisor的conf.d文件夹下新建一个程序配置文件,hellocore.conf:
#配置程序名称[program:hellocore]#运行程序的命令command=dotnet hellocore.dll #命令执行的目录directory=/home/hellocore/ #错误日志文件stderr_logfile=/var/log/hellocore.err.log#输出日志文件stdout_logfile=/var/log/hellocore.out.log #进程环境变量environment=ASPNETCORE_ENVIRONMENT=Production #进程执行的用户身份user=root#程序是否自启动autostart=true#程序意外退出是否自动重启autorestart=true#启动时间间隔(秒)startsecs=5stopsignal=INT重载Supervisor的配置文件
supervisorctl reload #重新加载配置文件
客户端相关命令:
supervisorctl status #查看程序配置的状态supervisorctl stop programname #停止某一个程序配置supervisorctl start programname #加载某一个程序配置supervisorctl restart programname #重新加载某一个程序配置supervisorctl reload #重新加载配置supervisorctl update
查看配置程序是否启动:
ps -ef | grep hellocore #programdllname
如下图,则Supervisor配置成功:
在 /usr/lib/systemd/system
文件夹下新建supervisor.service
配置文件,内容如下:
[Unit]Description=supervisor[Service]Type=forkingExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.confExecStop=/usr/bin/supervisorctl shutdownExecReload=/usr/bin/supervisorctl reloadKillMode=processRestart=on-failureRestartSec=42s[Install]WantedBy=multi-user.target
将服务设置为开机启动:
systemctl enable supervisor.servicesystemctl start supervisor.service
supervisor开机启动服务配置成功
打开supervisor的配置文件
vi /etc/supervisor/supervisord.conf
找到配置:
;[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))ls;password=123 ; (default is no password (open server))
修改成:
[inet_http_server] ; inet (TCP) 服务,默认是关闭的port=*:9001 ;ip:端口,*代表所有IPusername=root ;登陆账号,可以不设password=root123 ;登陆账户,可以不设
保存好修改后,重启supervisor。
supervisorctl reload
防火墙查看9001端口是否开启
firewall-cmd --List-ports #查看已开放的端口
开启端口:
firewall-cmd --zone=public --add-port=9001/tcp --permanentfirewall-cmd --reload #重启防火墙
命令含义:
--zone #作用域--add-port=9001/tcp #添加端口,格式为:端口/通讯协议--permanent #永久生效,没有此参数重启后失效
成功访问:
以上是内存溢出为你收集整理的CentOS&.NET Core初试-4-安装守护服务(Supervisor)全部内容,希望文章能够帮你解决CentOS&.NET Core初试-4-安装守护服务(Supervisor)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)