linux 發佈部署 asp-net core 獨立部署包並添加守護進程服務
-
先使用 vs 發佈需要的項目到指定目錄
-
複製項目發佈包到 linux 指定目錄
我一般放在 opt 下面 一般發佈後的文件沒有執行權限
如果給文件所有者添加可執行權限:chmod u+x ./publish/* (所有執行 dll 文件等可執行權限)
chmod g=rwx, o=rx ./publish/*
-
在此目錄下創建 slaughter.service 服務文件 sudo nano /etc/systemd/system/slaughter.service
-
編輯此文件 如下
[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
-
編輯完成之後 chmod 776 slaughter.servcie 添加可執行權限
-
進入 發佈部署包目錄 cd /opt/dev/publish/
執行 ./Qhbx.Tracebility.Core.Slaughter.WebApi --urls=http://*:8803 (項目名可執行文件)
查看是否項目啓動 項目端口號是 8803 如果啓動正常 則下面開放端口號
- 防火牆常見命令:
查看已經開放的端口:
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
- 啓動守護服務 目錄 / 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 . 啓動成功後狀態查看
————————————————
版權聲明:本文爲 CSDN 博主「andy5520」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/andy5520/article/details/108123916
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/uYh3ABp23-awN9_JBfXeEA