欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux 发布部署asp.net core 独立部署包并添加守护进程服务

程序员文章站 2022-07-09 17:16:55
...

1.先使用vs发布需要的项目到指定目录

linux 发布部署asp.net core 独立部署包并添加守护进程服务

2. 复制项目发布包到linux指定目录 

我一般放在opt下面   一般发布后的文件没有执行权限 

如果给文件所有者添加可执行权限: chmod u+x ./publish/* (所有执行dll文件等可执行权限)

chmod g=rwx, o=rx  ./publish/* 

linux 发布部署asp.net core 独立部署包并添加守护进程服务

3.在此目录下创建slaughter.service 服务文件 sudo nano /etc/systemd/system/slaughter.service

linux 发布部署asp.net core 独立部署包并添加守护进程服务

4.编辑此文件 如下 

[Unit]
Description=Example .NET Web API App running on Ubuntu

[Service]
WorkingDirectory=/opt/dev/publish        【发布项目目录】
ExecStart=/opt/dev/publish/Qhbx.Tracebility.Core.Slaughter.WebApi  【命令执行文件】
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10   【重启时间间隔】
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root   【所属用户】
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

 

5.编辑完成之后 chmod 776 slaughter.servcie  添加可执行权限

6. 进入 发布部署包目录cd /opt/dev/publish/ 

执行 ./Qhbx.Tracebility.Core.Slaughter.WebApi  --urls=http://*:8803 (项目名可执行文件) 

查看是否项目启动 项目端口号是8803 如果启动正常 则下面开放端口号

7.防火墙常见命令:

查看已经开放的端口:
firewall-cmd --list-ports
开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙
firewall-cmd --reload #重启firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动


firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

此处只需要开放 8803

firewall-cmd --zone=public --add-port=8803/tcp --permanent

然后重启 防火墙 firewall-cmd --reload

8. 启动守护服务 目录/etc/systemd/system

sudo systemctl enable slaughter【启用服务】

sudo systemctl start slaughter 【启动服务】

sudo systemctl status slaughter【查看启动状态】


修改服务配置service之后需要 systemctl daemon-reload【加载】
首先看一下服务列表里有没有这个服务:
systemctl list-unit-files --type=service
如果有的话:
systemctl daemon-reload


9 .启动成功后状态查看

linux 发布部署asp.net core 独立部署包并添加守护进程服务