1、配置net的运行环境

在 CentOS 上安装 .NET - .NET | Microsoft Docs演示在 CentOS 上安装 .NET SDK 和 .NET 运行时的各种方式。https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos设置密钥

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

安装SDK

sudo yum install dotnet-sdk-6.0

安装运行时

sudo yum install aspnetcore-runtime-6.0

或者 

sudo yum install dotnet-runtime-6.0

查看安装版本和信息

dotnet --info


dotnet --version

做完代表环境搭建好了

2、拷贝部署文件到linux,记住文件地址

3、cd到上面的目录

cd /home/Deploy

4、启动netcore站点

dotnet 站点名字的.dll --urls http://*:8081

5,开启进程守护

https://www.jb51.net/article/232731.htmhttps://www.jb51.net/article/232731.htm如果不开启进程守护,关掉ssh的客户端后,站点就会停止

a、安装supervisor

yum install supervisor

b、通过配置启动

#通过配置文件来启动supervisor

sudo supervisord -c /etc/supervisord.conf

#启动supervisorctl

sudo supervisorctl -c /etc/supervisord.conf



#查看supervisor 版本

version

c、创建配置文件

#进入目录
cd /etc/supervisord.d

#新建NetCore进程配置文件

sudo touch WsServerNetCore.ini

d、文件配置信息,从外部直接编辑

#配置程序名称
[program:HyWebSocketServer]
#运行程序的命令
command=dotnet Core.Rest.dll --urls http://*:8081
#命令执行的目录
directory=/home/Deploy
#进程环境变量
environment=ASPNETCORE_ENVIRONMENT=Production
#进程执行的用户身份
user=root
#进程停止信号,可以为TERM, HUP, INT, QUIT, KILL, USR1, or USR2等信号默认为TERM >。当用设定的信号去干掉进程,退出码会被认为是expected,非必须设置
stopsignal=INT
#如果是true的话,子进程将在supervisord启动后被自动启动,默认就是true,非必须设置
autostart=true
#这个是设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果>为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的>退出码不在下面的exitcodes里面定义的退出码的时候,才会被自动重启。当为true的时候>>,只要子进程挂掉,将会被无条件的重启
autorestart=true
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了,默认值为1,非必须设置
startsecs=1
#错误日志文件
stderr_logfile=/home/Deploy/err.log
#输出日志文件
stdout_logfile=/home/Deploy/out.log

日志路径不存在会启动失败! supervisor不会自己创建目录!

f、启动

sudo supervisord -c /etc/supervisord.conf

处理启动错误

1、端口被占用

ps aux | grep supervisord

kill - 9 进程ID

2、Unlinking stale socket

unlink /var/run/supervisor/supervisor.sock

6、最后一步,开机启动supervisor

1、修改这个文件

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42
[Install]
WantedBy=multi-user.target

最后

#启动服务
systemctl enable supervisord

#验证是否为开机启动
systemctl is-enabled supervisord

Logo

更多推荐