云计算百科
云计算领域专业知识百科平台

.netcore8 服务如何在麒麟v10服务器上部署

1 离线安装.net8 运行时

下载地址

下载 .NET 8.0 (Linux、macOS 和 Windows) | .NET

我是x64的所以选择这个二进制文件

上传到服务器上解压就行了我用的FileZilla工具上传的

可以用命令解压

cd /home/opsadmin/netcoreruntime

tar -zxvf aspnetcore-runtime-8.0.19-linux-x64.tar.gz

配置环境变量

#打开环境变量配置文件
vim ~/.bashrc

#在文件里新增这两行,其中 /home/opsadmin/netcoreruntime/aspnetcore 是你运行时解压的目录
export DOTNET_ROOT=/home/opsadmin/netcoreruntime/aspnetcore
export PATH=$PATH:$DOTNET_ROOT

#添加后保存文件刷新环境变量
source ~/.bashrc

#验证安装结果 输出版本信息说明配置成功了
dotnet –version

2 将.netcore项目上传到服务器上

#执行dotnet 命令启动服务
dotnet myapp.dll

2 将应用注册到 系统服务上进行管理长期运行

在第一步中使用.dotnet myapp.dll 启动了服务但是窗口运行 窗口关闭服务就停了显然不行,所以咱们还需要把服务应用注册到linux管理服务里进行管理

#新增服务配置文件
sudo vim /etc/systemd/system/myapp.service
[Unit]
Description=My .NET Core Application
After=network.target

[Service]
#服务目录 项目的文件目录
WorkingDirectory=/home/myapp
#dotnet 运行时安装目录
#注意 /home/netcoreruntime/dotnet 这个是dotnet运行时的全目录否则无法执行
#注意 /home/myapp/myapp.dll 这个是你程序的启动dll
ExecStart=/home/netcoreruntime/dotnet /home/myapp/myapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=100
KillSignal=SIGINT
#日志前缀
SyslogIdentifier=dotnet-myappserver
#启用用户 这里建议新建一个用户
User=opsadmin
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

以上配置关键几个位置修改下就可以直接使用

配置完成了怎么启动呢

#设置开机自动启动 myapp.service 这个要与刚才创建的配置文件名称一致
sudo systemctl enable myapp.service
#启动服务
sudo systemctl start myapp.service
#查看服务状态 如果running 状态说明服务已经部署成功拉
sudo systemctl status myapp.service

3 日志查看

服务部署完了但是怎么查看日志呢?

sudo journalctl -u myapp.service  # 查看所有日志 sudo journalctl -u myapp.service -f  # 实时跟踪日志 sudo journalctl -u myapp.service –since "10 minutes ago"  # 查看最近10分钟日志

journalctl 是个啥?

journalctl 是 Linux 系统中用于查询和管理 systemd-journald 服务收集的日志的命令行工具,在使用 systemd 的系统(如麒麟 V10、CentOS 7+、Ubuntu 16.04+ 等)中非常常用。它可以集中查看系统、服务、内核等各类日志,功能强大且灵活。

一、基本用法

1. 查看所有日志(默认按分页)

bash

journalctl

按 q 退出查看,按上下键滚动,按 G 跳到底部。

2. 实时跟踪日志(类似 tail -f)

bash

journalctl -f

实时显示新产生的日志,适合监控服务运行状态。

二、按服务 / 单元筛选

1. 查看指定服务的日志(最常用)

bash

journalctl -u 服务名.service
# 示例:查看 nginx 服务的日志
journalctl -u nginx.service

2. 实时跟踪某个服务的日志

bash

journalctl -u nginx.service -f

三、按时间筛选

1. 查看最近 N 时间的日志

bash

# 最近 1 小时
journalctl –since "1 hour ago"
# 最近 30 分钟
journalctl –since "30 minutes ago"

2. 查看某个时间范围内的日志

bash

# 2025-08-14 08:00 到现在
journalctl –since "2025-08-14 08:00"
# 2025-08-14 08:00 到 10:00
journalctl –since "2025-08-14 08:00" –until "2025-08-14 10:00"

四、按日志级别筛选

日志级别从低到高(详细程度递减):debug、info、notice、warning、err、crit、alert、emerg。

bash

# 只显示错误级别及以上的日志(err、crit、alert、emerg)
journalctl -p err
# 显示警告及以上级别,并跟踪 nginx 服务
journalctl -u nginx.service -p warning -f

五、按进程 / 用户筛选

1. 查看某个进程的日志

bash

journalctl _PID=1234 # 1234 是进程 PID

2. 查看某个用户相关的日志

bash

journalctl _UID=1000 # 1000 是用户 UID

六、内核日志相关

1. 只查看内核日志

bash

journalctl -k

2. 实时跟踪内核日志(如硬件事件、驱动信息)

bash

journalctl -k -f

七、实用选项

  • –no-pager:不分页显示(适合管道符处理)

    bash

    journalctl -u nginx.service –no-pager | grep "error"

  • -o json:以 JSON 格式输出(便于解析)

    bash

    journalctl -u nginx.service -o json

  • –disk-usage:查看日志占用的磁盘空间

    bash

    journalctl –disk-usage

  • –vacuum-size=100M:清理日志,保留最近 100M

    bash

    sudo journalctl –vacuum-size=100M

八、注意事项

  • 权限:部分日志(如系统级、内核日志)需要 sudo 才能查看完整内容。
  • 日志存储:默认日志存在 /var/log/journal/(二进制格式),由 systemd-journald 管理,而非传统文本文件。
  • 持久化:如果系统未启用日志持久化,重启后可能丢失部分日志,可通过 sudo mkdir -p /var/log/journal 并重启 systemd-journald 开启持久化。
  • 通过 journalctl 的各种组合选项,可以高效定位系统或服务的问题,是 Linux 运维中不可或缺的工具。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » .netcore8 服务如何在麒麟v10服务器上部署
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!