程序守护服务 Supervisor

本文介绍Supervisor,一种Python开发的进程管理工具,可将普通命令行进程转变为后台daemon,监控并自动重启异常退出的进程。文章详细讲解了Supervisor的安装、配置方法,以及如何配置Asp.NET Core应用的守护进程。

一、什么是Supervisor?

     Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

二、安装Superviser  安装路径/usr/bin/supervisord,配置文件/etc/supervisor.conf

yum install python-setuptools

easy_install supervisor

三、配置Supervisor

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

  修改supervisord.conf文件,将文件尾部的配置

;[include]
;files=relative/directory/*.ini
修改为:

;[include] ;files
=conf.d/*.conf

四、配置Asp.NET Core的应用的守护

  1)在 /etc/supervisor/conf.d 创建一个TestApi.conf文件

[program:TestApi ]
command=dotnet TestApi.dll;    #运行程序的命令
directory=/var/www/core/;       #命令执行的目录
autorestart=true;   #程序意外退出是否自动重启
stderr_logfile=/var/www/core/error.log;  #错误日志文件
stdout_logfile=/var/www/core/out.log;    #输出日志文件
#进程环境变量
environment=ASPNETCORE_ENVIRONMENT=Production; 
user=root;    #进程执行的用户身份
stopsignal=INT

 2)

supervisord -c /etc/supervisor/TestApi.conf

ps -ef | grep TestApi

 

运行supervisord,查看是否生效

五、错误解析

 1)Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting

    解决方法 

find / -name supervisor.sock

unlink /name/supervisor.sock

 

转载于:https://www.cnblogs.com/xiaoyaodijun/p/9791530.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值