debian让dotnet 程序以守护进程方式运行,如果意外退出主动开启

  1. 创建服务文件: 打开一个新的.service文件在/etc/systemd/system/目录下,例如myapp.service
bash 复制代码
sudo nano /etc/systemd/system/myapp.service
  1. 编辑服务文件: 添加以下内容到myapp.service文件,确保修改ExecStart以指向你的.NET Core应用程序的可执行文件,以及其他的路径和配置根据你的需求:
bash 复制代码
[Unit]
Description=My .NET Core Application

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

[Install]
WantedBy=multi-user.target
  • WorkingDirectory: 应用程序的工作目录。
  • ExecStart: 启动应用程序的命令。
  • Restart: 服务失败时的重启策略,always表示总是重启。
  • RestartSec: 重启前等待的时间。
  • KillSignal: 系统用于停止服务的信号。
  • User: 运行此服务的用户。
  • Environment: 设置环境变量,如ASP.NET Core环境。
    注:如何知道ExecStart中命令的路径呢?
    答:which命令会在您的系统的PATH环境变量指定的目录中搜索可执行文件。
bash 复制代码
which dotnet

我的配置如下:

bash 复制代码
[Unit]
Description=自动运行程序

[Service]
WorkingDirectory=/root/workerservice
ExecStart=/root/dotnet/dotnet  /root/workerservice/WorkerServiceForLinux.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-app
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target
  1. 启用和启动服务: 重新加载systemd守护进程以读取新的服务文件,然后启用并启动你的服务
bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable myapp.service
sudo systemctl start myapp.service
  1. 检查服务状态: 使用以下命令查看服务状态
bash 复制代码
sudo systemctl status myapp.service
  1. 停止与disable 服务
bash 复制代码
sudo systemctl disable myapp.service
sudo systemctl stop myapp.service
  1. 通过这些步骤,您的.NET Core应用程序将作为守护进程运行在Debian系统上。如果应用程序崩溃,systemd将按照您在myapp.service文件中定义的Restart和RestartSec选项自动重新启动它。
相关推荐
乘云数字DATABUFF1 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--3 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森3 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜4 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB5 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode6 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220707 天前
如何搭建本地yum源(上)
运维
大树8810 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠10 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质10 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务