手机版

如何用pm2守护你的 NET核心应用程序

时间:2021-08-29 来源:互联网 编辑:宝哥软件园 浏览:

一.守护进程的前世

Daemon的英文名是“daemon”,也是守护神的意思。守护进程是在后台运行的进程,不受任何终端的控制,并且在会话结束时不会退出。mysql、apache等程序。默认情况下,提供一个守护进程或以守护进程的方式工作。我们熟悉“mysqld”、“httpd”等等,其中d表示守护进程。例如,当我们运行。NET Core应用程序在Linux系统上用命令dotnet xxx.dll,如果我们结束会话,那么我们的程序将结束运行。原因是Linux系统中存在一种信令机制。进程可以通过一系列信号进行通信。当用户结束会话时,他将向当前会话的子进程发送一个HUP信号。一般来说,当前会话的子进程会在收到HUP信号后退出。此时,我们需要一个守护进程来控制我们的。NET Core应用程序进程。

第二,让流程在后台运行

在Linux下制作进程后台的方法有很多,比如Supervisor、Screen、nohup命令等等。Supervisor自己创建一个守护进程,然后让我们的应用程序进程成为它的子进程,这样我们的应用程序通过这个控制方法在后台运行。Nohup,顾名思义,就是不要向会话进程发送hup信号。

这里我就搬出本文的主角pm2,让流程通过pm2在后台运行。

三.pm2简介

Pm2在名称上与我们日常生活中经常接触到的pm2.5相似,但它们不是一回事。nodejs开发的童鞋可能对pm2比较熟悉,pm 2是nodejs的一个高级流程管理工具。

看到这里,可能会有关于童鞋的疑问。nodejs流程管理工具如何管理?NET核心进程?经过在Linux下长时间的摸索,博主们终于发现,用pm2来守护。NET Core进程完全没问题,除了nodejs之外其他很多程序都可以。而且安装、使用、管理过程都很简单,没有繁琐的配置,这也是我选择它的主要原因。

这里需要说明的是,pm2是用来让进程在后台运行的,因为如果不是nodejs程序的话,为nodejs准备的pm2的一些功能可能就用不到了,但是我们守护一下就足够了。NET核心应用程序。

四.pm2的安装和使用

4.1安装

安装节点

使用pm2时需要安装Nodejs。网上有很多资料,本文就不详细解释了。我写了一篇关于在Centos 7下安装的文章,Portal。

安装pm2

Npm安装pm2 -g只是一句话,不是很简单吗?安装成功后,使用命令pm2检查安装是否成功,您将看到以下输出:

-

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\______\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\____\/\\\_______\/\\\_\/\\\//\\ \____/\\\//\\\_\///______\//\\\___\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/____\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\ //______\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//_________\/\\\_____________\/\\\_____________\/\\\___/\\\/____________\/\\\_____________\ /\\\_____________\/\\\__/\\\\\\\\\\\\\\\__\///______________\///______________\///__\///////////////__

运行时版本

PM2是一个内置负载平衡器的Node.js应用程序的生产流程经理。

启动并监控任何应用程序:美元pm2启动app.js

负载平衡4个实例

生产中的监视器:美元pm2监视器

在服务器restart:$ pm2启动时使pm2自动启动

去更远的checkout:http://pm2.io/

-

usage : PM2[选项]命令

pm2 -h,- help所有可用的命令和选项spm2示例显示pm2用法示例spm2命令-h特定命令的帮助

访问~/.pm2中的pm2文件

4.2使用

4.2.1常见命令

命令描述pm2启动设置pm2启动自启动pm2取消启动删除pm2启动自启动pm2保存保存当前进程启动自启动pm2启动进程启动命令【-名称进程名称】启动应用程序pm2列表显示所有进程状态pm2 monit监控进程pm2日志【进程id或名称】显示进程日志pm2停止【全部】停止【全部】进程pm2重新启动【全部】进程pm2删除【进程名称或id,全部】删除指定的【全部】进程pm2信息【进程id或名称】查看应用程序信息官方文档:

动词(verb的缩写)使用pm2保护ASP.NET核心应用程序

5.1创建网络应用编程接口项目

#创建项目dotnet new webapi-no-https-o testwebapi #发布项目cdtestwebapi/dotnet publish-c release cdbin/release/netcoreapp 2.1/publish #成功运行项目dotnet testwebapi.dll,将会有以下输出:

5.2使用pm2守护程序

5.2.1启动

结束我们刚刚运行的程序,并在我们刚刚启动的目录中执行以下命令:

PM2 start ' dotnet testweb API . dll '-name testweb API已成功执行:

我们可以清楚地看到pid,运行状态,重启次数(应用崩溃重启/手动重启),运行时间,cpu和内存占用我们的应用。非常方便

使用curl access api检查它是否成功运行:

curl http://localhost :5000/API/values

5.2.2检查日志

pm2日志testwebapi

5.2.3检查申请信息

pm2信息测试web API

5.2.4监控应用程序

PM2 monit testwebapi

5.2.3重启策略

当应用程序异常退出时,Pm2将帮助您自动重启。所谓异常退出,就是退出代码不是0。

测试:

修改值控制器以添加退出代码为1的代码:

释放并开始使用pm2(此处省略)。

查询应用程序重启时间是0到pm2列表:

通过访问api触发异常退出:

通过再次查询pm2列表命令,可以找到要重新启动的curl http://localhost 33605000/API/值:

不及物动词正在关闭

与Supervisor和nohup相比,pm2没有Supervisor的配置,所以不需要输入长命令。便于nohup管理流程。欢迎与我交流。

Pm2官方文件

CentOS 7源代码编译和安装节点由陈晓大师

好了,这就是本文的全部内容。希望本文的内容对你的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。

版权声明:如何用pm2守护你的 NET核心应用程序是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。