.Net Core 进程守护之Supervisor使用
1、执行下列命令安装supervisor
wget https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm yum install supervisor -y
2、安装完成之后,我们到配置目录去添加两个配置文件,文件名可以自定义 ,因为我要部署webUI和webAPI两个应用程序,所以新建了两个配置文件:
cd /etc/supervisord.d vi WebApplication.WebUI.ini vi WebApplication.WebAPI.ini
WebApplication.WebUI.ini配置文件
# 冒号后面为应用名称
[program:WebApplication.WebUI]
# 应用启动命令,需要dotnet的完整路径
command=dotnet WebApplication.WebUI.dll --urls http://0.0.0.0:8888
# 进程名称
process_name=%(program_name)s
# 应用启动的目录,否则应用会报找不到文件的错误
directory=/data/apps/WebApplication.WebUI/
# .net core 应用环境变量,表明是哪个环境
environment=ASPNETCORE_ENVIRONMENT=Development
# 执行用户
user=root
stopsignal=INT
# 掉线是否自动重启
autostart=true
autorestart=true
startsecs=3
priority=1
# 日志输出路径,该路径自定义(路径不存在需要手动创建文件目录)
stderr_logfile=/data/logs/supervisor/log/%(program_name)s_error.log
stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10
# 日志输出路径,该路径自定义(路径不存在需要手动创建文件目录)
stdout_logfile=/data/logs/supervisor/log/%(program_name)s_error.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
WebApplication.WebAPI.ini配置文件
# 冒号后面为应用名称
[program:WebApplication.WebAPI]
# 应用启动命令,需要dotnet的完整路径
command=dotnet WebApplication.WebAPI.dll --urls http://0.0.0.0:7777
# 进程名称
process_name=%(program_name)s
# 应用启动的目录,否则应用会报找不到文件的错误
directory=/data/apps/WebApplication.WebAPI/
# .net core 应用环境变量,表明是哪个环境
environment=ASPNETCORE_ENVIRONMENT=Development
# 执行用户
user=root
stopsignal=INT
# 掉线是否自动重启
autostart=true
autorestart=true startsecs=3
priority=1
# 日志输出路径,该路径自定义(路径不存在需要手动创建文件目录)
stderr_logfile=/data/logs/supervisor/log/%(program_name)s_error.log
stderr_logfile_maxbytes=50MB
stderr_logfile_backups=10
# 日志输出路径,该路径自定义(路径不存在需要手动创建文件目录)
stdout_logfile=/data/logs/supervisor/log/%(program_name)s_error.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
3、启动Supervisor
注意:WebApplication.WebUI和WebApplication.WebAPI 应用程序需要放在对应目录下/data/apps
# 启动Supervisor
supervisord -c /etc/supervisord.conf
#查看状态
supervisorctl status # 防火墙开放端口(作者两个应用端口号分别是7777、8888)
firewall-cmd --add-port=8888/tcp --permanent
firewall-cmd --add-port=7777/tcp --permanent


4、Supervisor 后台管理页面设置
vi /etc/supervisord.conf
取消截图部分注释

访问supervsior 后台管理页面,http://192.168.140.129:9001/
5、bash终端控制
#启动Supervisor
supervisord -c /etc/supervisor/supervisord.conf
# 查看状态
supervisorctl status
# 停止某个服务
supervisorctl stop WebApplication1
# 停止所有服务
supervisorctl stop all
# 开始某个服务
supervisorctl start WebApplication1
# 开始所有服务
supervisorctl start all
# 重启某个服务
supervisorctl restart WebApplication1
# 重启所有服务
supervisorctl restart all
# 重启Supervisor
supervisorctl reload
# 修改Supervisor
supervisorctl update
6、将supervsior 配置设置为开机自启动服务
# 编辑服务文件
vi /usr/lib/systemd/system/supervisord.service
# 内容
[Unit]
Description=Supervisor
[Service]
Type=forking
PIDFile=/var/run/supervisord.pid
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
# 启动服务
systemctl enable supervisord
# 验证是否为开机自启动
systemctl is-enabled supervisord
7、supervisord操作命令
# 停止
systemctl stop supervisord
# 启动
systemctl start supervisord
# 状态
systemctl status supervisord
# 重载
systemctl reload supervisord
# 重启
systemctl restart supervisord
友情链接:
https://www.cnblogs.com/chenxi001/p/13614831.html
https://www.jianshu.com/p/9d3b993556b2
.Net Core 进程守护之Supervisor使用的更多相关文章
- .NET Core项目部署到Linux(Centos7)(八)为.NET Core项目创建Supervisor进程守护监控
目录 1.前言 2.环境和软件的准备 3.创建.NET Core API项目 4.VMware Workstation虚拟机及Centos 7安装 5.Centos 7安装.NET Core环境 6. ...
- ASP.NET Core教程:使用Supervisor做ASP.NET Core应用程序守护进程
一.前言 在上一篇文章中,我们讲解了如何在Linux服务器上面部署ASP.NET Core应用程序,并且使用Nginx作为反向代理.我们在Linux服务器上面,是通过ASP.NET Core自宿主的方 ...
- Centos 7 .Net core后台守护进程Supervisor配置
环境: Centos 7 已安装.Net core 2.0.0 .Net core 1.1.2 1.Supervisor安装 yum 安装 yum install supervisor (阿里云验证 ...
- CentOS&.NET Core初试-4-安装守护服务(Supervisor)
系列目录 CentOS的安装和网卡的配置 安装.NET Core SDK和发布网站 Nginx的安装和配置 安装守护服务(Supervisor) Supervisor是什么? Supervisor 是 ...
- 用Supervisor实现进程守护,在异常退出时自动重启
程序启动后,有些是以daemon的形式运行,但在意外退出后,如果不能及时重新启动,会有比较严重的影响. 比如Zimg在图片处理中由于某些图片处理失败,会导致zimg进程挂掉,影响正常的服务提供,并且只 ...
- 守护服务Supervisor的安装和使用
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...
- VMware Workstation CentOS7 Linux 学习之路(4)--守护服务(Supervisor)
目前存在三个问题 问题1:ASP.NET Core应用程序运行在shell之中,如果关闭shell则会发现ASP.NET Core应用被关闭,从而导致应用无法访问,这种情况当然是我们不想遇到的,而且生 ...
- Android 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护
本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context ↳an ...
- Android实现双进程守护 (转)
做过android开发的人应该都知道应用会在系统资源匮乏的情况下被系统杀死!当后台的应用被系统回收之后,如何重新恢复它呢?网上对此问题有很多的讨论.这里先总结一下网上流传的各种解决方案,看看这些办法是 ...
随机推荐
- 29 面向对象编程 static 关键字
补充:static 代码 // static public class Student{ private static int age; // 静态的变量 多线程 private double sco ...
- 03 Java的数据类型分为两大类 类型转换 八大基本类型
数据类型 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 Java的数据类型分为两大类 基本类型(primitive type) 数值类型 整数类型 byte占1个字节范围: ...
- spring boot使用注解进行模糊查询
spring boot中mybatis使用注解进行模糊查询@Select("select * from dept where dname like CONCAT('%',#{dname},' ...
- 4月25日 python学习总结 互斥锁 IPC通信 和 生产者消费者模型
一.守护进程 import random import time from multiprocessing import Process def task(): print('name: egon') ...
- python在json文件中提取IP和域名
# qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374896 import re def openjson(path): f = open(pat ...
- Java如何实现定时任务?
我是3y,一年CRUD经验用十年的markdown程序员常年被誉为优质八股文选手 挺早就规划了要引入分布式定时任务框架了,在年前austin就已经接入了,但代码过年一直都没写,文章也就一直拖到今天了 ...
- springboot实现热部署的几种方式
原理:使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在 ...
- C++11最常用的新特性如下
1.auto关键字:编译器可以根据初始值自动推导出类型.但是不能用于函数传参.定义数组以及非静态成员变量. 2.nullptr关键字:是一种特殊类型的字面值,它可以被转换成任意其它类型的指针:而NUL ...
- 学习zabbix(四)
一. 监控知识 1.硬件监控: 机房巡检,远程控制卡,IPMI 2.系统监控: cpu负载查看(指标):uptime(低于3),top(30%-70%), vmstat, mpstat 内存监控: f ...
- 领域驱动(DDD)设计和开发实战
领域驱动设计(DDD)的中心内容是如何将业务领域概念映射到软件工件中.大部分关于此主题的著作和文章都以 Eric Evans 的书<领域驱动设计>为基础,主要从概念和设计的角度探讨领域建模 ...


