返回顶部
首页 > 资讯 > 操作系统 >ASP.NET Core在Linux下为dotnet创建守护进程
  • 517
分享到

ASP.NET Core在Linux下为dotnet创建守护进程

2024-04-02 19:04:59 517人浏览 八月长安
摘要

什么是守护进程 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在lin

什么是守护进程

linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在linux中,每个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离于终端并且在后台运行,并且它脱离终端的目的是为了避免进程在运行的过程中的信息在任何终端中显示并且进程也不会被任何终端所产生的终端信息所打断。它从被执行的时候开始运转,直到整个系统关闭才退出。

此处的创建守护进程,是指发布在Linux上 ASP.net core 程序的dotnet xxx.dll命令的宿主进程创建一个守护进程。

在 Linux 上有很多可以管理进程的工具,我们使用 Supervisor 来做这个事情。

原因有两点:

  • 1、它是微软官方文档推荐的,降低学习成本。
  • 2、它并不一定是最好的,但一定是文档最全的。

Supervisor 介绍

Supervisor是采用 python(2.4+) 开发的,它是一个允许用户管理 基于 Unix 系统进程的 Client/Server 系统,提供了大量功能来实现对进程的管理。

官方文档:Http://supervisord.org/

Supervisor 安装

在 masOS 中直接使用brew工具进行安装即可:

brew install supervisor

在 linux 中使用以下命令进行安装:

sudo apt-get install supervisor

yum install supervisor

pip install supervosor

easy_install supervisor

安装完成之后:


Mac:~ yangxiaodong$ brew install supervisor
Warning: supervisor-3.2.1 already installed

Supervisor 配置,常用命令

安装完成之后,在/ect/supervisor/conf.d/目录下新建一个配置文件(touch HelloWEBApp.conf),取名为HelloWebApp.conf

打开HelloWebApp.conf (vim HelloWebApp.conf),写入如下命令:


[program:HelloWebApp]
command=dotnet HelloWebApp.dll  #要执行的命令
directory=/home/yxd/Workspace/publish #命令执行的目录
environment=ASPnetcore__ENVIRONMENT=Production #环境变量
user=www-data  #进程执行的用户身份
stopsignal=INT
autostart=true #是否自动启动
autorestart=true #是否自动重启
startsecs=1 #自动重启间隔
stderr_logfile=/var/log/HelloWebApp.err.log #标准错误日志
stdout_logfile=/var/log/HelloWebApp.out.log #标准输出日志

配置好以后 (:wq保存退出),需要重新加载一下配置

sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf

或者你可以直接重启 Supervisor:


sudo service supervisor stop
sudo service supervisor start

如果启动的时候报错,可以打开位于/etc/log/supervisor/supervisord.log文件来查看具体的日志。

其中dotnet 命令输出的日志文件分别为位于


/var/log/HelloWebApp.err.log
/var/log/HelloWebApp.out.log

在这些文件里面你可以查看程序中的异常信息或者是运行信息。

打开浏览器,输入http://localhost:5000发现已经可以浏览了。

Supervisor 常用命令


supervisorctl shutdown #关闭所有任务

supervisorctl stop|start program_name

supervisorctl status #查看所有任务状态

Supervisor UI 管理台

Supervisor 默认给我们提供了一个图形界面来供我们管理进程和任务,在 macOS 中默认配置的有,但是在 Linux 中我们需要手动开启一下。

打开位于/etc/supervisor/supervisord.conf文件,添加inet_http_server 节点

然后就可以通过界面来查看运行的进程了:

测试一下

最后,我们测试一下是否会自动重启,开机自动运行?

  • 1、进程管理中干掉dot net ,发现可以重新启动。以下是日志:

2016-07-09 12:24:18,626 INFO spawned: 'HelloWebApp' with pid 1774
2016-07-09 12:24:19,766 INFO success: HelloWebApp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 12:27:43,208 INFO exited: HelloWebApp (exit status 0; expected)
2016-07-09 12:27:44,223 INFO spawned: 'HelloWebApp' with pid 3687
2016-07-09 12:27:45,243 INFO success: HelloWebApp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
  • 2、重启机器,发现可以自动运行。

到此这篇关于ASP.net core在Linux下为dotnet创建守护进程的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ASP.NET Core在Linux下为dotnet创建守护进程

本文链接: https://lsjlt.com/news/160668.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NET Core在Linux下为dotnet创建守护进程
    什么是守护进程 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在lin...
    99+
    2024-04-02
  • 在Linux下怎么为dotnet创建守护进程
    本篇内容介绍了“在Linux下怎么为dotnet创建守护进程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是守护进程在linux或者un...
    99+
    2023-06-22
  • linux守护进程怎么创建
    这篇文章主要讲解了“linux守护进程怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux守护进程怎么创建”吧!在linux中,守护进程也称“精灵进程”,是一个在后台运行且不受任...
    99+
    2023-06-29
  • linux中怎么创建守护进程
    这期内容当中小编将会给大家带来有关linux中怎么创建守护进程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。创建子进程,父进程退出   这是编写守护进程的第一步。由于守护进程是脱离控制终端的,因此,完成第...
    99+
    2023-06-09
  • 使用Supervisor守护ASP.NET Core应用程序进程
    目录一、前言二、Supervisor1、安装Python包管理工具2、安装Supervisor3、配置Supervisor应用守护4、配置Supervisor开机启动三、总结一、前言...
    99+
    2024-04-02
  • linux 守护进程详解及建立守护进程
    linux 守护进程详解及建立守护进程 守护进程是一种后台运行并且独立于所有终端控制之外的进程。   守护进程的启动   要启动一个守护进程,可以采取一下几种方式: 在系统期间通过系统的初始化脚本启动...
    99+
    2022-06-04
    进程 详解 linux
  • 如何使用Supervisor守护ASP.NET Core应用程序进程
    本文小编为大家详细介绍“如何使用Supervisor守护ASP.NET Core应用程序进程”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用Supervisor守护ASP.NET Core应用程序进程”文章能帮助...
    99+
    2023-06-29
  • linux 创建守护进程的相关知识
    创建子进程,父进程退出   这是编写守护进程的第一步。由于守护进程是脱离控制终端的,因此,完成第一步后就会在Shell终端里造成一程序已经运行完毕的假象。之后的所有工作都在子进程中完成,而用户在Shell终...
    99+
    2022-06-04
    相关知识 进程 linux
  • linux中如何建立守护进程
    小编给大家分享一下linux中如何建立守护进程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!linux 守护进程详解及建立守护进程守护进程是一种后台运行并且独立于...
    99+
    2023-06-09
  • linux下的守护进程实例分析
    本篇内容主要讲解“linux下的守护进程实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux下的守护进程实例分析”吧!shell控制的php常驻进程...
    99+
    2024-04-02
  • 如何在python中创建守护线程
    这期内容当中小编将会给大家带来有关如何在python中创建守护线程,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问...
    99+
    2023-06-14
  • Linux下以守护进程方式运行.NET6
    前言 ​ 在《步步入门》 .NET 6 部署到Linux 一文中只是演示了控制终端方式运行ASP.ENT,在实际的应用中,这种方式不能确保服务延续性。如果控制终端关闭,或者服务...
    99+
    2024-04-02
  • 在java中创建守护线程的方法
    本篇文章为大家展示了在java中创建守护线程的方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java线程分为两类分别为daemon线程(守护线程)和User线程(用户线程),在JVM启动时候会调...
    99+
    2023-05-31
    java 守护线程 ava
  • Golang怎么创建守护进程和平滑重启
    本篇内容介绍了“Golang怎么创建守护进程和平滑重启”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1)生成守护进程直接上代码:packag...
    99+
    2023-06-20
  • Golang如何创建守护进程以及平滑重启
    这篇文章主要介绍了Golang如何创建守护进程以及平滑重启,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法如下1)生成守护进程直接上代码:package main...
    99+
    2023-06-15
  • 用模板的方式创建守护进程代码实例
    #include "wrap.h"#define MYDOMAIN_FLAG "/tmp/.mydomain_log" void domain_end(){ Unlink(MYDOMAIN_FLAG);}...
    99+
    2022-06-04
    实例 进程 模板
  • 如何编写用模板的方式创建守护进程代码
    这篇文章主要介绍“如何编写用模板的方式创建守护进程代码”,在日常操作中,相信很多人在如何编写用模板的方式创建守护进程代码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编写用模板的方式创建守护进程代码”的疑...
    99+
    2023-06-09
  • 怎么在Linux下创建写保护的文件
    这篇文章主要介绍“怎么在Linux下创建写保护的文件”,在日常操作中,相信很多人在怎么在Linux下创建写保护的文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在Linux下创建写保护的文件”的疑惑有所...
    99+
    2023-06-13
  • 在NumPy中创建QR码:使用ASP.NET Core在Web应用程序中实现
    QR码是一种二维码,可以存储大量信息,包括URL、文本、联系人信息等。在现代数字化时代,QR码已经成为了一种非常重要的信息传递方式。在本文中,我们将介绍如何使用NumPy创建QR码,并将其集成到ASP.NET Core Web应用程序中。...
    99+
    2023-08-26
    numy 二维码 numpy
  • Linux下创建进程的三种方式及特点
    一、fork()函数 fork()函数是Linux最常见的创建进程的方式,在调用fork()函数后,系统会为新进程分配资源,例如内存空间,然后复制父进程的全部资源到子进程中,因此新进程和父进程几乎完全一样。此函数的特点是子进程是父进程...
    99+
    2023-10-29
    三种 进程 方式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作