[学习笔记].Net5项目打包到Linux系统服务时遇到的坑
如果按照官方文档的步骤手动安装.Net5 会有一个坑:
在 Linux 上手动安装 .NET - .NET | Microsoft Docs
在使用systemd打包.Net5服务的时候,无法运行,报错如下图:

查询系统日志发现对dotnet访问没有权限,dotnet已设置权限755并且service的配置文件中User已配置为本人用户
奇怪的是作为本人用户登录在终端中使用dotnet是有权限的。
好一番寻找发现,systemd会阻止位于用户的主目录(Home)中二进制文件的运行。
linux - Failed at step EXEC spawning... Permission denied - Server Fault
我一下就想起来安装dotnet的时候完全闭眼copy的微软文档的命令。打开微软文档一看,果不其然,安装目录是{home_path}/dotnet!!
因此重新安装,首先下载源代码至/usr/local/src/
sudo wget -P /usr/local/src/ https://download.visualstudio.microsoft.com/download/pr/e10f8ecd-eb2c-42a0-a217-98a18517e12c/436b90a4d5be20456b210c406c0f7718/dotnet-sdk-5.0.405-linux-x64.tar.gz

创建名为dotnet主目录并将二进制文件解压至该目录
sudo mkdir ../dotnet
sudo tar zxvf dotnet-sdk-5.0.404-linux-x64.tar.gz -C ../dotnet

打开~/.bashrc文件,末尾添加如下两行配置DOTNET_ROOT环境变量
export DOTNET_ROOT=/usr/local/dotnet/
export PATH=$PATH:$DOTNET_ROOT

保存并运行
source .bashr

用whereis命令查看dotnet已经在规范的目录中了

[学习笔记].Net5项目打包到Linux系统服务时遇到的坑的更多相关文章
- Maven学习笔记-02-Maven项目打包配置与测试
一 Maven项目打包配置 1 为整个项目统一指定字符集 <properties> <project.build.sourceEncoding>UTF-</project ...
- android菜鸟学习笔记16----Android项目打包安装过程(Run as Android Application)
右击项目名称,Run as Android Appication之后,Android项目打包安装过程: 1.打包生成.apk文件: 1)把源码中的.java文件编译生成.class文件 2)将所有的. ...
- thinkphp学习笔记3—项目编译和调试模式
原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并 ...
- Linux 学习笔记之超详细基础linux命令(the end)
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 14---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 14
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 13
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 12---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 12
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 11---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 11
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 10---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 10
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9----------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 9
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 8----------------- ...
随机推荐
- go中的sync.pool源码剖析
sync.pool sync.pool作用 使用 适用场景 案例 源码解读 GET pin pinSlow getSlow Put poolChain popHead pushHead pack/un ...
- 7.5 Windows驱动开发:监控Register注册表回调
在笔者前一篇文章<内核枚举Registry注册表回调>中实现了对注册表的枚举,本章将实现对注册表的监控,不同于32位系统在64位系统中,微软为我们提供了两个针对注册表的专用内核监控函数,通 ...
- 使用C++实现Range序列生成器
在C++编程中,经常需要迭代一系列数字或其他可迭代对象.通常,这需要编写复杂的循环结构,但有一种精妙的方法可以使这一过程变得更加简单和可读.如果你使用过Python语言那么一定对Range语句非常的数 ...
- 微服务保护-Sentinel
1.初识Sentinel 1.1.雪崩问题及解决方案 1.1.1.雪崩问题 微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务. 如图,如果服务提供者I发生了故障,当前的应用的部分业 ...
- Qt信号槽原理
1.说明 使用Qt已经好几年了,一直以为自己懂Qt,熟悉Qt,使用起来很是熟练,无论什么项目,都喜欢用Qt编写.但真正去看Qt的源码,去理解Qt的思想也就近两年的事. 本次就着重介绍一下Qt的核心功能 ...
- blazor maui hybrid app显示本地图片
啊... ... 一通操作下来感觉就是两个字 折磨 跨平台有跨平台的好处 但框架本身支持的有限 很多东西做起来很曲折 哎 这里总结一下笔者为了折腾本地图片显示的尝试 为什么要做本地图片展示呢 如果是做 ...
- PyTorch中实现Transformer模型
前言 关于Transformer原理与论文的介绍:详细了解Transformer:Attention Is All You Need 对于论文给出的模型架构,使用 PyTorch 分别实现各个部分. ...
- Pandas处理股票数据
import tushare as ts import pandas as pd # 下载茅台所有股票交易数据 # df = ts.get_k_data(code="600519" ...
- Mysql 8.0 Navicat连接Mysql报错Authentication plugin ‘caching_sha2_password‘ cannot be loaded
1.终端登陆MySQL$ mysql -u root -ppassword #登入mysql 2.修改账户密码加密规则并更新用户密码ALTER USER 'root'@'localhost' IDEN ...
- NEMU PA 3-3 实验报告
一.实验目的 在上一章PA3-2中,我们实现了分段机制,将48位的虚拟地址vaddr转换成了laddr.为什么不是paddr呢?这就要说到这一章要完成的东西:**分页机制 **. 从80386开始,计 ...