1Panel运行的.net程序无法读取系统字体(因为使用了docker)

问题来源

我之前都是使用的宝塔面板,之前我也部署过我的程序,就没有什么问题,但是上次我部署我的程序的时候,就提示无法找到字体Arial。

我的程序中使用该字体生成验证码。

我多次安装了微软的字体包,但是依旧没有效果。

直到今天,我再次配置一个新的ubuntu系统。

(上一个ubuntu系统已经被我改为windows系统使用了)

缘故

今天又重试了之前的操作,依旧是不行。但我想到了1panel可能是因为使用了docker的缘故。.net 程序跑在docker中,默认的操作当然读取不到系统的文件。

事实上,就是这个缘故。

我在系统上直接执行,没有任何问题。

解决方案

虽然,有的解决方案是说,让使用FontCollection 添加系统的字体路径,但是我还是不想这么做。

于是我还是使用了之前使用的supervisor来配置一个进程守护。

supervisor的使用可以参照Linux进程守护—Supervisor(ubuntu)_linux守护进程工具-CSDN博客

我之前配置的时候参照的这个,这次我问的gpt。

给我的配置中少了一个参数。

directory

导致程序无法正常运行,总是提示在95行有问题。

该路径是程序读取文件的相对路径。没有设置这个,程序读取 appsetting.production.json文件就会出现问题。

基本使用

Supervisor


一个用 Python 写的进程管理工具,专门用来管理和监控多个后台进程。它可以自动重启程序,支持日志管理,配置简单,非常适合部署多个程序。

  • 安装:

    sudo apt install supervisor
    

  • 配置示例

  • /etc/supervisor/conf.d/myapp.conf):

    [program:mydotnetapp]
    command=/usr/bin/dotnet /path/to/yourapp.dll 
    directory=/path/to/workingdir
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/mydotnetapp.err.log
    stdout_logfile=/var/log/mydotnetapp.out.log
    user=youruser
    

    我的程序的配置最终如下

  • [program:ai_server]
    command=dotnet /webs/Turbo-Auth.dll
    directory=/webs/
    autostart=true
    autorestart=true
    stderr_logfile=/var/log/ai_server.err.log
    stdout_logfile=/var/log/ai_server.out.log
    user=root
    

  • 启动和管理:

    sudo supervisorctl reread
    sudo supervisorctl update

 查询状态

sudo supervisorctl status

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/82834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试总结。

一、回流(重排)与重绘(Repaint) 优化回答: 概念区分: 回流(Reflow/Relayout):当元素的几何属性(如宽高、位置、隐藏 / 显示)发生改变时&#xff…

TensorFlow深度学习实战(20)——自组织映射详解

TensorFlow深度学习实战(20)——自组织映射详解 0. 前言1. 自组织映射原理2. 自组织映射的优缺点3. 使用自组织映射实现颜色映射小结系列链接 0. 前言 自组织映射 (Self-Organizing Map, SOM) 是一种无监督学习算法,主要用于高维数据的降维、…

Go内存泄漏排查与修复最佳实践

一、引言 即使Go语言拥有强大的垃圾回收机制,内存泄漏仍然是我们在生产环境中经常面临的挑战。与传统印象不同,垃圾回收并不是万能的"记忆清道夫",它只能处理那些不再被引用的内存,而无法识别那些仍被引用但实际上不再…

LeetCode刷题 -- 542. 01矩阵 基于 DFS 更新优化的多源最短路径实现

LeetCode刷题 – 542. 01矩阵 基于 DFS 更新优化的多源最短路径实现 题目描述简述 给定一个 m x n 的二进制矩阵 mat,其中: 每个元素为 0 或 1返回一个同样大小的矩阵 ans,其中 ans[i][j] 表示 mat[i][j] 到最近 0 的最短曼哈顿距离 算法思…

MySQL用户远程访问权限设置

mysql相关指令 一. MySQL给用户添加远程访问权限1. 创建或者修改用户权限方法一:创建用户并授予远程访问权限方法二:修改现有用户的访问限制方法三:授予特定数据库的特定权限 2. 修改 MySQL 配置文件3. 安全最佳实践4. 测试远程连接5. 撤销权…

如何使用 BPF 分析 Linux 内存泄漏,Linux 性能调优之 BPF 分析内核态、用户态内存泄漏

写在前面 博文内容为 通过 BCC 工具集 memleak 进行内存泄漏分析的简单认知包括 memleak 脚本简单认知,内核态(内核模块)、用户态(Java,Python,C)内存跟踪泄漏分析 Demo理解不足小伙伴帮忙指正 😃,生活加油知其不可奈何而安之若命,德之至也。----《庄子内篇人间世》 …

谷歌Sign Gemma: AI手语翻译,沟通从此无界!

嘿,朋友们!想象一下,语言不再是交流的障碍,每个人都能顺畅表达与理解。这听起来是不是很酷?谷歌最新发布的Sign Gemma AI模型,正朝着这个激动人心的未来迈出了一大步!它就像一位随身的、不知疲倦…

全生命周期的智慧城市管理

前言 全生命周期的智慧城市管理。未来,城市将在 实现从基础设施建设、日常运营到数据管理的 全生命周期统筹。这将避免过去智慧城市建设 中出现的“碎片化”问题,实现资源的高效配 置和项目的协调发展。城市管理者将运用先进 的信息技术,如物…

最新Spring Security实战教程(十七)企业级安全方案设计 - 多因素认证(MFA)实现

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…

logstash拉取redisStream的流数据,并存储ES

先说结论, window验证logstash截至2025-06-06 是没有原生支持的。 为啥考虑用redisStream呢?因为不想引入三方的kafka等组件, 让服务部署轻量化, 所以使用现有的redis来实现, 为啥不用list呢? 已经用strea…

IEC 61347-1:2015 灯控制装置安全通用要求详解

IEC 61347-1:2015 灯控制装置安全通用要求详解 IEC 61347-1:2015《灯控制装置 第1部分:一般要求和安全要求》是国际电工委员会(IEC)制定的关于灯控制装置安全性能的核心基础标准。它为各类用于启动和稳定工作电流的灯控制装置(如…

26、跳表

在C标准库中,std::map 和 std::set 是使用红黑树作为底层数据结构的容器。 红黑树是一种自平衡二叉搜索树,能够保证插入、删除和查找操作的时间复杂度为O(log n)。 以下是一些使用红黑树的C标准库容器: std::map:一种关联容器&a…

LabVIEW音频测试分析

LabVIEW通过读取指定WAV 文件,实现对音频信号的播放、多维度测量分析功能,为音频设备研发、声学研究及质量检测提供专业工具支持。 主要功能 文件读取与播放:支持持续读取示例数据文件夹内的 WAV 文件,可实时播放音频以监听被测信…

JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/锁消除

目录 一 基础 1 概念 2 卖票问题 3 转账问题 二 锁机制与优化策略 0 Monitor 1 轻量级锁 2 锁膨胀 3 自旋 4 偏向锁 5 锁消除 6 wait /notify 7 sleep与wait的对比 8 join原理 一 基础 1 概念 临界区 一段代码块内如果存在对共享资源的多线程读写操作&#xf…

Doris 与 Elasticsearch:谁更适合你的数据分析需求?

一、Doris 和 Elasticsearch 的基本概念 (一)Doris 是什么? Doris 是一个用于数据分析的分布式 MPP(大规模并行处理)数据库。它主要用于存储和分析大量的结构化数据(比如表格数据)&#xff0c…

使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯

使用Virtual Serial Port Drivercom2tcp或tcp2com进行两台电脑的串口通讯 问题说明解决方案方案三具体操作流程网上教程软件安装拓扑图准备工作com2tcp和tcp2com操作使用串口助手进行验证 方案三存在的问题数据错误通讯延时 问题说明 最近想进行串口通讯的一个测试&#xff0c…

transformer和 RNN以及他的几个变体区别 改进

Transformer、RNN 及其变体(LSTM/GRU)是深度学习中处理序列数据的核心模型,但它们的架构设计和应用场景有显著差异。以下从技术原理、优缺点和适用场景三个维度进行对比分析: 核心架构对比 模型核心机制并行计算能力长序列依赖处…

CSS6404L 在物联网设备中的应用优势:低功耗高可靠的存储革新与竞品对比

物联网设备对存储芯片的需求聚焦于低功耗、小尺寸、高可靠性与传输效率,Cascadeteq 的 CSS6404L 64Mb Quad-SPI Pseudo-SRAM 凭借差异化技术特性,在同类产品中展现显著优势。以下从核心特性及竞品对比两方面解析其应用价值。 一、CSS6404L 核心产品特性…

go语言map扩容

map是什么? ​在Go语言中,map是一种内置的无序key/value键值对的集合,可以根据key在O(1)的时间复杂度内取到value,有点类似于数组或者切片结构,可以把数组看作是一种特殊的map,数组的key为数组的下标&…

2025年SDK游戏盾实战深度解析:防御T级攻击与AI反作弊的终极方案

一、引言:游戏安全的“生死防线” 2025年,全球游戏行业因DDoS攻击日均损失3.2亿元,攻击峰值突破8Tbps,且70% 的攻击为混合型(DDoSCC)。传统高防IP因延迟高、成本贵、协议兼容性差,已无法满足实…