系列目录

  1. CentOS的安装和网卡的配置
  2. 安装.NET Core SDK和发布网站
  3. Nginx的安装和配置
  4. 安装守护服务(Supervisor)

Supervisor是什么?

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-setuptools
easy_install supervisor

supervisor安装完成后会生成三个执行程序:

  • **supervisortd **:supervisor的守护进程服务(用于接收进程管理命令)

  • **supervisorctl **:客户端(用于和守护进程通信,发送管理进程的指令)

  • **echo_supervisord_conf **:生成初始配置文件程序。

配置Supervisor

添加supervisor文件夹以及conf.d配置文件夹

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
mkdir /etc/supervisor/conf.d

修改supervisord.conf文件,在文件尾部:

[include]
files=/etc/supervisor/conf.d/*.conf

启动Supervisor服务

supervisord -c /etc/supervisor/supervisord.conf

program的配置

在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=5
stopsignal=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配置成功:

设置Supervisor开机启动

/usr/lib/systemd/system文件夹下新建supervisor.service配置文件,内容如下:

[Unit]
Description=supervisor
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target

将服务设置为开机启动:

systemctl enable supervisor.service
systemctl start supervisor.service

supervisor开机启动服务配置成功

配置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:端口,*代表所有IP
username=root ;登陆账号,可以不设
password=root123 ;登陆账户,可以不设

保存好修改后,重启supervisor。

supervisorctl reload

防火墙查看9001端口是否开启

firewall-cmd --list-ports #查看已开放的端口

开启端口:

firewall-cmd --zone=public  --add-port=9001/tcp --permanent
firewall-cmd --reload #重启防火墙

命令含义:

--zone #作用域
--add-port=9001/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

成功访问:

CentOS&.NET Core初试-4-安装守护服务(Supervisor)的更多相关文章

  1. CentOS&.NET Core初试-3-Nginx的安装和配置

    系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) Nginx简介   Nginx是一个免费的,开源的,高 ...

  2. CentOS&.NET Core初试-1-CentOS的安装和网卡的配置

    系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) 软件环境 系统版本:CentOS Linux rele ...

  3. CentOS&.NET Core初试系列

    目的 对前段时间学习.NET Core的知识进行一次入门篇的总结,希望加深印象同时帮助刚学同学少走一些坑. 目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的 ...

  4. CentOS&.NET Core初试-2-安装.NET Core SDK和发布网站

    系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) 安装.NET Core SDK 注册Microsoft ...

  5. 守护服务Supervisor的安装和使用

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...

  6. VMware Workstation CentOS7 Linux 学习之路(4)--守护服务(Supervisor)

    目前存在三个问题 问题1:ASP.NET Core应用程序运行在shell之中,如果关闭shell则会发现ASP.NET Core应用被关闭,从而导致应用无法访问,这种情况当然是我们不想遇到的,而且生 ...

  7. Ubuntu安装守护进程supervisor

    Supervisor安装与配置(Linux/Unix进程管理工具) asp.net core 负载均衡集群搭建(centos7+nginx+supervisor+kestrel) 为了保证服务能够稳定 ...

  8. 程序守护服务 Supervisor

    一.什么是Supervisor? Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启.它是通过fork ...

  9. 2017-03-05 CentOS中配置守护服务(Supervisor)监听dotnet core web程序的运行

    我们继续解决上篇博客的问题,我这个人有个毛病,不喜欢遗留什么问题,也不喜欢问题说不明白,具体要怎么解决一定要详尽,因为经常自己遇到问题的时候,去翻别人的博客,就会遇到这样的问题,很苦恼,又说废话了. ...

随机推荐

  1. 1083 Moving Tables

    题目链接:http://poj.org/problem?id=1083 题意: 走廊两边分别有200个房间,一边连续编号为1-399的奇数,另一边是2-400的偶数, 如果从房间 i 移动桌子到房间 ...

  2. CentOS 7搭建FTP服务器

    安装vsftpd 命令:yum -y install vsftpd 修改ftp配置文件 命令:vim /etc/vsftpd/vsftpd.conf 按i进入insert模式后,按以下要求修改 ano ...

  3. Lua中“.”调用方法与“:”调用方法的区别

    Lua中“.”调用方法与“:”调用方法的区别:                                                                             ...

  4. Statement 接口的应用(存在sql语句的注入风险)

    实现简单的登录功能 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; impo ...

  5. WSAGetOverlappedResult函数

    WSAGetOverlappedResult函数 通过WSAWaitForMultipleEvents函数来得到重叠操作完成的通知,那么自然也需要一个函数来查询一下重叠操作的结果,定义如下 BOOL ...

  6. mybatis-初步使用

    最近因为业务各方面的原因,需要使用mybatis,所以系统的学习和总结下. 其实mybatis出来已经很久了,貌似大家伙用得也挺顺手的样纸,好歹我先不评价,还是先了解了解mybatis的样纸,后续再添 ...

  7. Discuz!和jQuery冲突的解决办法

    Common.js是官方自带的,我没改过它,所以不可能出错,所以问题就应该是两者冲突了.导致的结果我也发现了,前台的DIY功能不能用了.   我还花了很多时间在那里研究冲突的地方,后来还是没能解决.之 ...

  8. ArrayList用法详解与源码分析

    说明 此文章分两部分,1.ArrayList用法.2.源码分析.先用法后分析是为了以后忘了查阅起来方便-- ArrayList 基本用法 1.创建ArrayList对象 //创建默认容量的数组列表(默 ...

  9. Markdown应用样例

    Markdown编辑器: https://www.typora.io/ Markdown主题: http://theme.typora.io/ 1.标题 一号标题 三号标题 六号标题 2.超链接 Cm ...

  10. 纸壳CMS 2.3,正式加入商城功能

    纸壳CMS发布了2.3版本,主要是添加了商城功能,强化产品功能.让您的网站轻松实现电子商务. 有关2.3版本的更多信息,请查看以下链接: https://github.com/SeriaWei/ZKE ...