問題來源
我之前都是使用的寶塔面板,之前我也部署過我的程序,就沒有什么問題,但是上次我部署我的程序的時候,就提示無法找到字體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
?