首先,在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
【进程管理】
- 启动supervisord管理的所有进程
supervisorctl start all
- 停止supervisord管理的所有进程
supervisorctl stop all
- 启动supervisord管理的某一个特定进程
supervisorctl start program-name // program-name为[program:xx]中的xx
- 停止supervisord管理的某一个特定进程
supervisorctl stop program-name // program-name为[program:xx]中的xx
- 重启所有进程或所有进程
supervisorctl restart all // 重启所有supervisorctl reatart program-name // 重启某一进程,program-name为[program:xx]中的xx
- 查看supervisord当前管理的所有进程的状态
supervisorctl status
参考至:https://www.jianshu.com/p/805977544d7f