视频购物网站开发方案,网站建设专业如何做到廉洁自律,百度投诉中心电话24个小时,河南网站建站推广前言 在上篇文章中《ASP.NET Core Docker部署》中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序#xff0c;本篇主要是怎么样为我们在 Linux 或者 macOs 中部署的 dotnet 程序创建一个守护进程#xff0c;来保证我们的程序在异常或者是电脑重启的时候仍然能够… 前言 在上篇文章中《ASP.NET Core Docker部署》中介绍了如何在 Docker 容器中部署我们的 asp.net core 应用程序本篇主要是怎么样为我们在 Linux 或者 macOs 中部署的 dotnet 程序创建一个守护进程来保证我们的程序在异常或者是电脑重启的时候仍然能够正常访问。 如果你以后用准备使用 asp.net core来开发项目的话程序并且部署到 Linux 上的话那么此篇文章你值得收藏。如果你觉得对你有帮助的话不妨点个【推荐】。 目录 什么是守护进程Supervisor 介绍Supervisor 安装Supervisor 配置常用命令Supervisor UI管理台 什么是守护进程 在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 中使用以下命令进行安装 ubuntusudo apt-get install supervisor centosyum install supervisor pythonpip install supervosoreasy_install supervisor 安装完成之后 mac:~ yangxiaodong$ brew install supervisorWarning: supervisor-3.2.1 already installed Supervisor 配置,常用命令 安装完成之后在 /ect/supervisor/confg.d/ 目录下新建一个配置文件touch HelloWebApp.conf取名为 HelloWebApp.conf 打开HelloWebApp.conf vim HelloWebApp.conf写入如下命令 [program:HelloWebApp]commanddotnet HelloWebApp.dll #要执行的命令directory/home/yxd/Workspace/publish #命令执行的目录environmentASPNETCORE__ENVIRONMENTProduction #环境变量userwww-data #进程执行的用户身份stopsignalINTautostarttrue #是否自动启动autorestarttrue #是否自动重启startsecs1 #自动重启间隔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 stopsudo 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_namesupervisorctl 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 17742016-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 36872016-07-09 12:27:45,243 INFO success: HelloWebApp entered RUNNING state, process has stayed up for than 1 seconds (startsecs) 2、重启机器发现可以自动运行。 原文地址http://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注