Centos7运行NETCore完整教程(四):Supervisor

目录

1.介绍Supervisor

2.安装Supervisor

3.配置Supervisor

4.开机启动Supervisor服务


1.介绍Supervisor

 Supervisor 是用 Python 开发的 Linux/Unix 系统下的一个进程管理工具。它可以使进程脱离终端,变为后台守护进程(daemon)。实时监控进程状态,异常退出时能自动重启。

NETCore目前存在三个问题

问题1:NETCore目前在终端dotnet运行,如果关闭终端则NETCore应用被关闭,从而导致应用无法访问。

问题2:如果NETCore进程意外终止那么需要人为进行再次启动,往往这种操作都不够及时。

问题3:如果服务器宕机或需要重启我们则还是需要进入终端dotnet运行。

以上问题就需要用Supervisor来解决。

2.安装Supervisor

打开终端,切换到root用户,执行以下指令,安装

yum install python-setuptools
easy_install supervisor

3.配置Supervisor

1.先创建Supervisor配置文件的目录

mkdir /etc/supervisor

2.通过 echo_supervisord_conf 指令(用来生成初始配置文件,文件名可以自定义)来初始化一个配置文件:

echo_supervisord_conf > /etc/supervisor/supervisord.conf

3.通过vim命令修改创建好的supervisord.conf配置信息,或有视图界面的直接打开编辑

vi /etc/supervisor/supervisord.conf

文件内容末尾找到以下内容进行修改

;[include]
;files = relative/directory/*.ini

改成以下内容,注意要把“;”去掉

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

即,把注释去除、设置/etc/supervisor/conf.d为 Supervisor 进程配置文件加载目录。

这样,Supervisor 会自动加载该目录下.conf后缀的文件作为共同服务配置。Supervisor 管理的每个进程单独写一个配置文件放在该目录下,supervisord.conf配置文件中保留公共配置。

4.通过以下指令,创建目录,添加配置文件

mkdir /etc/supervisor/conf.d
cd /etc/supervisor/conf.d
touch netcore.conf
ll

通过vi指令或视图界面编辑netcore.conf,添加以下配置内容(分号后面的是注释,注意看注释,免得配置错了):

[program:NETCore]                                         ;自定义进程名称, 根据自己喜好命名
command=dotnet GDSMPlateForm.dll                          ;程序启动命令 使用dotnet 命令(dll是你的项目文件)
directory=/root/Documents/NETCore                         ;命令执行的目录 你.NET Core 程序存放目录
autostart=true                                            ;在Supervisord启动时,程序是否启动
autorestart=true                                          ;程序退出后自动重启
startretries=5                                            ;启动失败自动重试次数,默认是3
startsecs=1                                               ;自动重启间隔
user=root                                                 ;设置启动进程的用户,默认是root
priority=999                                              ;进程启动优先级,默认999,值小的优先启动
stderr_logfile=/etc/supervisor/log/GDSMPlateForm.err.log  ;标准错误日志 路径可以自定义,文件夹要建好
stdout_logfile=/etc/supervisor/log/GDSMPlateForm.out.log  ;标准输出日志 路径可以自定义,文件夹要建好
environment=ASPNETCORE_ENVIRONMENT=Production             ;进程环境变量
stopsignal=INT                                            ;请求停止时用来杀死程序的信号

5.启动supervisor服务

supervisord -c /etc/supervisor/supervisord.conf

如果出现以下情况:

表示监听的端口被占用了,将占用端口的程序关了或者重启系统再尝试启动supervisor服务。

成功启动后,我们就不需要用dotnet命令运行程序, 同样可以访问我们部署的.NET Core程序了。

4.开机启动Supervisor服务

1.进入/usr/lib/systemd/system/目录

cd /usr/lib/systemd/system/

2.创建自定义配置文件supervisord.service

touch supervisord.service

3.编辑supervisord.service文件,有视图界面就直接打开编辑

vi supervisord.service

4.添加以下内容,保存退出

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

5.设置开机启动

systemctl enable supervisord.service

6.检测是否配置成功

systemctl is-enabled supervisord

出现enabled表示设置成功,也可重启服务器验证。

重启Supervisor服务,更新站点的时候需要重启下该服务

supervisorctl reload
原文地址:https://www.cnblogs.com/zt102545/p/13940236.html