首页 > 系统相关 >Ubuntu 通过Supervisor 或者 systemd 管理 .Net应用

Ubuntu 通过Supervisor 或者 systemd 管理 .Net应用

时间:2024-09-25 09:37:20浏览次数:7  
标签:systemd Supervisor sudo myapp Ubuntu NET 日志

在 Ubuntu 上安装 .NET 8.0,通过 supervisorsystemd 管理 .NET 应用服务,确保应用能够自动启动、运行以及在崩溃时重启。

1. 安装 .NET 8.0

最新的Ubuntu版本已经不需要注册 Microsoft 包存储库了,具体的可以参考微软官方文档安装,在Ubuntu上安装.NET SDK或.NET运行时

2. 使用 Supervisor 管理 .NET 应用

Supervisor 是一个进程管理工具,可以用来管理 .NET 应用的启动和重启等功能。

步骤 1: 安装 Supervisor

在 Ubuntu 上安装 Supervisor:

sudo apt install supervisor

步骤 2: 创建 Supervisor 配置文件

Supervisor 的配置文件存放在 /etc/supervisor/conf.d/ 目录下。创建并编辑一个配置文件(例如 myapp.conf),用于管理你的 .NET 应用:

sudo nano /etc/supervisor/conf.d/myapp.conf

在该文件中配置你的 .NET 应用。假设你的 .NET 应用程序文件为 /path/app/myapp.dll

[program:myapp]
command=dotnet myapp.dll  # 启动 .NET 应用
directory=/path/app
autostart=true              # 系统启动时自动启动该服务
autorestart=true            # 如果应用崩溃,自动重启
stderr_logfile=/var/log/myapp.err.log  # 错误日志
stdout_logfile=/var/log/myapp.out.log  # 输出日志
user=your_username          # 运行该应用的用户

步骤 3: 重新加载 Supervisor 配置并启动应用

一旦配置文件编写完成,使用以下命令使 Supervisor 重新加载并启动 .NET 应用程序:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start myapp

步骤 4: 管理应用

你可以使用 supervisorctl 命令来管理你的应用程序的状态、重启等操作:

sudo supervisorctl status myapp  # 查看应用状态
sudo supervisorctl stop myapp    # 停止应用
sudo supervisorctl restart myapp # 重启应用
个人习惯通过 sudo supervisorctl 看到所有的服务列表,通过 stop myapp、start myapp、restart myapp、status等命令管理。 

3. 使用 systemd 管理 .NET 应用

systemd 是 Linux 系统的默认服务管理器。相比于 Supervisor,它更轻量且通常直接内置于系统中,适合用来管理应用程序的守护进程。

步骤 1: 创建 systemd 服务文件

/etc/systemd/system/ 目录下创建一个服务文件。例如,创建名为 myapp.service 的文件:

sudo nano /etc/systemd/system/myapp.service

在该文件中添加以下内容,用于管理你的 .NET 应用程序:

[Unit]
Description=My .NET Application
After=network.target

[Service]
WorkingDirectory=/path/app
ExecStart=dotnet myapp.dll
Restart=always                # 让服务自动重启
RestartSec=10                 # 重启之前的等待时间
SyslogIdentifier=myapp        # 在日志中标识服务名
User=your_username            # 运行服务的用户

[Install]
WantedBy=multi-user.target

步骤 2: 重新加载 systemd 并启动应用

执行以下命令来让 systemd 重新加载配置并启动你的应用:

sudo systemctl daemon-reload
sudo systemctl start myapp.service

步骤 3: 启用开机自启动

如果希望在系统启动时自动启动该应用程序,可以执行以下命令:

sudo systemctl enable myapp.service

步骤 4: 管理 .NET 应用服务

你可以使用 systemctl 来管理应用服务,比如查看状态、停止、重启等:

sudo systemctl status myapp.service  # 查看服务状态
sudo systemctl stop myapp.service    # 停止服务
sudo systemctl restart myapp.service # 重启服务
sudo systemctl disable myapp.service # 禁用开机自启

4. 日志管理

Supervisorsystemd 都会自动管理应用程序的日志。你可以使用以下方法查看日志输出:

Supervisor 日志:

  • 错误日志:/var/log/myapp.err.log
  • 输出日志:/var/log/myapp.out.log

你可以通过 cattail 命令查看日志内容:

tail -f /var/log/myapp.out.log

systemd 日志:

systemd 使用 journalctl 来管理服务日志,你可以使用以下命令查看:

journalctl -u myapp.service -f

这个命令会显示应用的实时日志输出。

5. 查看进程

ps -ef | grep dotnet

标签:systemd,Supervisor,sudo,myapp,Ubuntu,NET,日志
From: https://www.cnblogs.com/dx5800/p/18422761

相关文章

  • Windows vnc viewer 连接 ubuntu 22.04 远程图形桌面
    前言全局说明一、说明环境:Windows11家庭版23H222631.3737Python3.8.10(tags/v3.8.10:3d8993a,May32021,11:48:03)[MSCv.192864bit(AMD64)]onwin32Ubuntu18.04.6LTS(Linuxqt-vm5.4.0-150-generic#167~18.04.1-UbuntuSMPWedMay2400:51:42UTC......
  • Ubuntu 上安装 Miniconda
    一、下载Miniconda打开终端。访问Anaconda官方仓库下载页面https://repo.anaconda.com/miniconda/选择Miniconda3-py310_24.7.1-0-Linux-x86_64.sh,进行下载。文件名当中的py310_24.7.1表示,在conda的默认的base环境中的Python版本是3.10,Miniconda版本是24.7.1。二......
  • VMWare安装Ubuntu之后与Windows系统共享文件夹的设置步骤
    1.首先在Windows系统中新建一个需要共享的文件夹,并设置文件夹的共享属性,如下图: 2.VMWare软件开启【共享文件夹】功能,如图所示3.进入Ubuntu系统,查看是否存在/mnt/hgfs目录,若是没有,先要以root权限建立该目录sudomkdir/mnt/hgfs4.挂载目录sudovmhgfs-fuse.host:......
  • ubuntu 解决scp ssh登录WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
     使用SSH登录某台机器,有时因为server端的一些变动,会出现以下信息:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEO......
  • 实战篇 | Homebrew 安装使用(Ubuntu 完整实操版)
    支持绝大部分系统软件服务的安装,如ollama,ffmpeg,mysql等在非root用户下安装使用,mac和linux(ubuntu)上都可以使用1.操作步骤1.1确认curl和git是否已安装(可跳过)#分别查看是否安装curl和git(输出版本号则已安装)curl-Vgit-v注:若未安装,可以通过类似......
  • 【slam】ubuntu中各种类型软件包的安装方法
    deb格式https://blog.csdn.net/jake_xiao/article/details/102984744压缩包形式https://blog.csdn.net/qq_31869107/article/details/55506978(解压之后找到其中的sh文件,sudo执行,如下所示)https://blog.csdn.net/goodgoodstudyddp/article/details/112464853linux和unbuntu中......
  • ubuntu mysql远程连接 bind-address配置
    dd远程连接数据库配置文件bind-address为127.0.0.1(只允许本地连接)但在etc/mysql/mysql.conf.d文件下mysqld.cnf只为可读无法修改步骤    1:找到在ubuntuetc/mysql/mysql.conf.d文件夹右键终端打开。    2:输入sudo-s后输入密码权限登录。    ......
  • ubuntu网口状态:DOWN、UP、RUNNING
    对Ubuntu系统中网口不同状态的理解一、ipaipa可查看所有网口状态二、ifconfigifconfig可查看被up起来的网口信息三、DOWN、UP、RUNNING当网口状态为DOWN时可用ifconfigens33up将网口up网口状态必须为UP才能设置IP、子网掩码等这个接口被标记为UP(已启用)、BR......
  • Ubuntu24.04安装及初始化配置
    一、系统简介Ubuntu基于debian以桌面应用为主的开源操作系统,长期支持版本LTS通常每两年发布一次,如最新的版本24.04,上一个版本22.04,每个版本有5年支持周期,适合企业生产服务器使用,另外对容器支持较好,很多docker基础镜像采用utuntu。国产替代操作系统基于debian的有银河麒麟V10、统信U......
  • Linux 后台运行服务的全攻略:nohup、screen、tmux 和 systemd 的实战指南
    Linux后台运行服务的全攻略:nohup、screen、tmux和systemd的实战指南在服务器运维或后台开发中,保持服务在后台稳定运行是一项非常重要的需求。无论是开发阶段还是生产环境,确保服务在终端关闭后持续运行是保证服务可用性的关键。本文将详细介绍几种常见的后台运行服务的......