.net Core 3.0 WebApi 创建Linux守护进程的方法

2025-05-29 0 33

前言

我们一般可以在Linux服务器上执行 dotnet <app_assembly.dll> 命令来运行我们的.net Core WebApi应用。但是这样运行起来的应用很不稳定,关闭终端窗口之后,应用也会停止运行。为了让其可以稳定运行,我们需要让它变成系统的守护进程,成为一种服务一直在系统中运行,出现异常时也能重新启动。

Linux系统有自己的守护进程管理工具 Systemd 。systemd 是内核启动后的第一个用户进程,PID 为1,是所有其它用户进程的父进程。它直接与内核交互,性能出色,可以提供用于启动、停止和管理进程的许多强大的功能。我们完全可以将程序交给 Systemd ,让系统统一管理,成为真正意义上的系统服务。

systemctl 用于管理 systemd 的行为,替换之前的 sysvinit 和 upstart。

创建服务文件

创建服务定义文件:

?

1
vim /etc/systemd/system/qf-intecabinet.service

以下是应用的一个示例服务文件:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
[Unit]

Description=运行Qf.InteCabinet服务

[Service]

WorkingDirectory=/opt/InteCabinet # 依赖环境,可以指定多个

ExecStart=/usr/bin/dotnet /opt/InteCabinet/Qf.InteCabinet.WebApi.dll

Restart=always

# Restart service after 10 seconds if the dotnet service crashes:

RestartSec=10

KillSignal=SIGINT

SyslogIdentifier=qf-intecabinet

User=root # 管理服务的用户,用户必须存在并且拥有正确应用文件的所有权

Environment=ASPNETCORE_ENVIRONMENT=Production # 环境变量

Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]

WantedBy=multi-user.target # 该服务所在的Target

管理服务

保存该文件并启用该服务

?

1
systemctl enable qf-intecabinet.service

启动该服务

?

1
systemctl start qf-intecabinet.service

查看服务状态

?

1
systemctl status qf-intecabinet.service

查看日志

?

1
journalctl -fu qf-intecabinet.service

使用时间选项(如 –since today、–until 1 hour ago)或这些选项的组合可以减少返回的条目数

?

1
journalctl -fu qf-intecabinet.service --since "2020-01-01" --until "2020-03-01 12:00"

关闭服务

?

1
systemctl stop qf-intecabinet.service

参考资料

微软官方文档

到此这篇关于.net Core 3.0 WebApi 创建Linux守护进程的方法的文章就介绍到这了,更多相关.net Core WebApi创建守护进程内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://www.cnblogs.com/rsls/p/12501076.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 .net Core 3.0 WebApi 创建Linux守护进程的方法 https://www.kuaiidc.com/98672.html

相关文章

发表评论
暂无评论