利用Supervisor 管理自己部署的应用程序

首先,在centos7下安装supervisor

yum install python-setuptools

easy_install supervisor

然后新建配置文件

#新建supervisor文件夹
mkdir /etc/supervisor #生成默认的配置文件 echo_supervisord_conf > /etc/supervisor/supervisord.conf

成功之后查看文件

然后编辑这个配置文件,配置成读取conf.d文件夹的配置文件,这样就不用写在一个文件里面

同时将[inet_http_server]下的注释去掉,修改为

[inet_http_server]       
port=192.168.125.128:9001        
username=admin             
password=123456 

这个是启动web界面管理,上面的Ip和端口可以换。

接下来就是编写执行命令了,在/etc/supervisor下新建conf.d文件夹,

在里面新建一个conf文件,命令内容如下(注意前后不能有空格)

[program:WebAPI]
command=/bin/bash -c "export ASPNETCORE_ENVIRONMENT=Development&&dotnet WebAPI.dll"
directory=/home/wwwroot/strategyApi/
autorestart=true
stderr_logfile=/var/log/WebAPI.err.log
stdout_logfile=/var/log/WebAPI.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3

其中第二行是执行多行命令设置启动环境,因为swagger页面需要配置在Development环境下才能打开,

日志记录建议分项目建文件夹,方便查找。我这里只是测试,就随便了。

然后启动

supervisord -c /etc/supervisor/supervisord.conf   或  supervisord

如果服务已经启动,使用以下命令重启

supervisorctl reload

查看自己的程序是否运行成功

ps -ef | grep dotnet

我这里是添加了三个服务。

然后进入界面

ps:如果打不开需要将配置的端口打开

firewall-cmd --zone=public --add-port=80/tcp --permanent(开放80端口)

最后,记录一些常用的命令:

启动supervisord】

supervisord -c /etc/supervisord.conf   或  supervisord 

【停止supervisord】

supervisorctl shutdown

【重新加载配置文件】

supervisorctl reload

【进程管理】

  1. 启动supervisord管理的所有进程
  supervisorctl start all
  1. 停止supervisord管理的所有进程
  supervisorctl stop all
  1. 启动supervisord管理的某一个特定进程
  supervisorctl start program-name // program-name为[program:xx]中的xx
  1. 停止supervisord管理的某一个特定进程
  supervisorctl stop program-name  // program-name为[program:xx]中的xx
  1. 重启所有进程或所有进程
  supervisorctl restart all // 重启所有supervisorctl reatart program-name // 重启某一进程,program-name为[program:xx]中的xx
  1. 查看supervisord当前管理的所有进程的状态
  supervisorctl status

参考至:https://www.jianshu.com/p/805977544d7f
原文地址:https://www.cnblogs.com/FateHuli/p/10900713.html