CentOS&.NET Core初试-4-安装守护服务(Supervisor)

文章目录

[隐藏]

  • Supervisor是什么?
  • Supervisor能干什么?
  • 安装Supervisor
  • 配置Supervisor
  • 启动Supervisor服务
  • program的配置
  • 重载Supervisor的配置文件
  • Supervisor配置成功
  • 配置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配置成功

设置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  #永久生效,没有此参数重启后失效  

成功访问:

原文出处:cnblogs -> http://www.cnblogs.com/zerodai/p/9721524.html

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。