.NET 5/6 - UseSystemd() 实际上做了什么?

问题描述 投票:0回答:1

我有一个 .NET API,其中包含一些工作服务,我将其部署在 CentOS 8 服务器上。我知道 Microsoft.Extensions.Hosting 包中有一个名为 UseSystemd() 的函数,该函数应该帮助它在 Systemd 上运行。我不知道它到底能做什么或能做什么。

我已将 .NET 5 api 升级到 .NET 6,但我不知道该把它放在哪里,所以我没有添加它。我的 .NET 5 api 中没有它,但它工作得很好。

我的包已部署,并使用 Systemd 服务(没有 Systemd())运行它,并且运行得很好。它像平常一样检测崩溃,我可以使用journalctl查看日志

所以,我似乎并不需要它。它实际上有什么作用?

.net .net-core .net-5 systemd .net-6.0
1个回答
0
投票

Ankush 已经在评论中提供了有用的链接

总结一下:

微软最近添加了一个软件包以更好地与 systemd 集成。安装集成后,应用程序将通知 systemd 何时准备好以及何时停止。此外,systemd 将了解应用程序记录的不同日志级别

为此,您需要在

.service
文件中将服务配置为“Type=notify”。

[Service]
Type=notify

来自https://askubuntu.com/a/1120288/1494411

如果您使用 Type=notify 设置服务,systemd 将自动设置一个返回到 systemd 的通信套接字,并将其路径导出到 $NOTIFY_SOCKET 下的服务。
它还会侦听该套接字中的特殊消息,例如服务是否已准备好(在这种情况下,systemd 会将其转换为已启动状态,因为初始化已完成)以及服务的自我报告状态,该状态也将在在 systemctl status mytest.service 的输出中报告(假设服务名为 mytest。)

© www.soinside.com 2019 - 2024. All rights reserved.