.NET Core 应用程序如何在 Linux 中创建 Systemd 服务 ?

.NET Core 和 Linux 已经成为一个强大的组合,为开发人员提供了一个灵活、高性能的平台来构建和运行应用程序。在 Linux 上部署 .NET Core 应用程序的一个关键方面是利用 systemd 服务来确保应用程序顺利运行,在开机时自动启动,并在失败后重新启动。

Systemd 和 .NET Core 简介

Systemd

Systemd 是初始化系统和系统管理器,已成为许多 Linux 发行版的标准。它负责初始化系统组件并在启动后管理系统进程。它引入了系统服务的概念,允许以统一的方式管理系统和应用程序服务。

.NET Core

是一个开源的跨平台框架,由微软开发,用于构建现代应用程序。.NET Core 凭借其高性能、并行版本控制和灵活性,在开发 Windows、Linux 和 macOS 上运行的 web 应用程序、服务和服务器应用程序方面获得了广泛的应用。

Setting Up a .NET Core Application on Linux

在深入研究系统服务之前,请确保您的 .NET Core 应用程序已经准备就绪,并在本地开发环境中进行了测试。一旦确信它按预期运行,下一步就是发布应用程序。

使用 .NET Core CLI 为 Linux 环境发布应用程序

复制代码
dotnet publish -c Release -o /path/to/publish/directory --runtime linux-x64

将发布的应用程序传输到 Linux 服务器,您可以使用 SCP、FTP 或任何其他适合您的工作流程的方法。

Creating a Systemd Service for Your .NET Core Application

/etc/etc/systemd/system/ 目录中创建一个服务文件

复制代码
sudo nano /etc/systemd/system/myapp.service

添加以下内容,并替换应用程序的实际路径

bash 复制代码
[Unit]
Description=My .NET Core Application

[Service]
WorkingDirectory=/path/to/publish/directory
ExecStart=/usr/bin/dotnet /path/to/publish/directory/YourApp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

创建服务文件后,重新加载 systemd 以读取新的服务文件。

复制代码
sudo systemctl daemon-reload

设置服务开机启动,然后立即启动服务。

复制代码
sudo systemctl enable myapp.service
sudo systemctl start myapp.service

使用 systemd 命令来管理和监视服务

  • Check Status : sudo systemctl status myapp.service
  • Restart Service : sudo systemctl restart myapp.service
  • Stop Service : sudo systemctl stop myapp.service

我的开源项目

相关推荐
计算机安禾13 小时前
【Linux从入门到精通】第40篇:LAMP/LNMP环境一键部署脚本实战
android·linux·adb
‎ദ്ദിᵔ.˛.ᵔ₎13 小时前
Linux 基础指令
linux
寒山独见君~13 小时前
自动化-消息推送Server酱3,APP推送
运维·数据库·python·自动化·通知
都在酒里13 小时前
在公共服务器上构建 RK3588 SDK 的纯净 Docker 方案
运维·服务器·docker
计算机安禾13 小时前
【Linux从入门到精通】第46篇:SELinux与AppArmor——Linux的安全增强模块
linux·运维·安全
落羽的落羽13 小时前
【网络】计算机网络世界的基础概念
linux·服务器·网络·c++·人工智能·计算机网络·机器学习
TBrL7UtdTELTTdut4BAL13 小时前
F7015TV3 光猫 Telnet 命令配置 DHCP 服务器
运维·服务器·网络
海兰13 小时前
将 Cursor 连接到生产日志:通过 Elastic MCP 服务器
运维·服务器·elasticsearch
计算机安禾13 小时前
【Linux从入门到精通】第41篇:Linux内核编译初体验——裁剪属于你自己的内核
linux·运维·服务器
Elastic 中国社区官方博客14 小时前
2026 年金融服务可观测性现状:从实施到业务影响
大数据·运维·人工智能·elasticsearch·搜索引擎·金融·自动化