首先,在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:
username=admin
password=

这个是启动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=

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

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

然后启动

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

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

supervisorctl reload

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

ps -ef | grep dotnet

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

然后进入界面

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

firewall-cmd --zone=public --add-port=/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

利用Supervisor 管理自己部署的应用程序的更多相关文章

  1. supervisor的安装部署及集群管理

    supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...

  2. 使用Linux脚本更新Weblogic部署的应用程序

    在利用Jenkins实现Weblogic应用自动部署的功能时,如何通过Shell 脚本自动更新Weblogic部署的应用程序呢? 可以使用weblogic.jar包中的weblogic.Deploye ...

  3. Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)

    随着"互联网+"时代的业务增长.变化速度及大规模计算的需求,廉价的.高可扩展的分布式x86集群已成为标准解决方案,如Google已经在几千万台服务器上部署分布式系统.Docker及 ...

  4. supervisor 管理uwsgi 进程

    Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动 重启.它是通过fork/exec的方式把这些被管理的进 ...

  5. Prism 4 文档 ---第11章 部署Prism应用程序

        要成功移动Prism应用到生产中,需要对部署计划为应用程序的设计过程的一部分.本章介绍了注意事项和你需要采取的准备以部署应用程序,以及你要在用户手中获得部署程序所需要采取的行动.     Si ...

  6. 使用supervisor管理后台进程

    在linux中supervisor是用来管理后台进程的,是一个用python写的进程管理工具,可以让宕机的进程重启.这里我们大概讲一下用他来管理uWSGI. 一.安装supervisor 1.pyth ...

  7. 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序

    如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...

  8. Linux部署.NetCore站点 使用Supervisor进行托管部署

    前言 之前终于在Linux上部署好了.NetCore站点,但是这个站点非常“脆弱”.当我的ssh连接关闭或者我想在当前连接执行其他命令时候就必须关闭dotnet站点的执行程序.这显然不是我想要达到的效 ...

  9. 部署Go语言程序的N种方式

    部署Go语言项目 本文以部署 Go Web 程序为例,介绍了在 CentOS7 服务器上部署 Go 语言程序的若干方法. 独立部署 Go 语言支持跨平台交叉编译,也就是说我们可以在 Windows 或 ...

随机推荐

  1. socket.io 消息发送

    socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // 发送到当前请求套接字客户端 ...

  2. Spring Boot属性配置&自定义属性配置

    一.修改默认配置 例1.spring boot 开发web应用的时候,默认tomcat的启动端口为8080,如果需要修改默认的端口,则需要在application.properties 添加以下记录: ...

  3. redis修改持久化路径、日志路径、清缓存

    redis修改持久化路径和日志路径 vim redis.conf logfile /data/redis_cache/logs/redis.log #日志路径 dir /data/redis_cach ...

  4. 置BAT批处理窗口显示颜色

    置BAT批处理窗口显示颜色 摘自:https://blog.csdn.net/tp7309/article/details/53450131 2016年12月04日 01:08:33 亦游 阅读数:1 ...

  5. jmeter 测试 websocket 接口

    https://www.cnblogs.com/penghaihang/p/7724830.html(请求的亲测ok) https://www.jianshu.com/p/bb8b3e928607 h ...

  6. JS时间转换,url编码,jquery返回类型等问题

    1.当时间被转换为json格式后会被转换成 /Date(...)/ 这种格式,其中...为时间转换成妙后的一串整数 function changeDateFormat(cellval) { )); v ...

  7. mysql命令、mysqldump命令找不到解决

    1.解决bash: mysql: command not found 的方法 [root@DB-02 ~]# mysql -u root -bash: mysql: command not found ...

  8. 打开app应用

    =========================================人才网 <!--app底部浮动广告--><style> footer { padding-bo ...

  9. QT信号槽连接

    一:信号槽是什么? Qt的信号和槽机制是Qt的一大特点,实际上这是和MFC中的消息映射机制相似的东西,要完成的事情也差不多,就是发送一个消息然后让其它窗口响应,当然,这里的消息是广义的说法,简单点说就 ...

  10. javascript当中火狐的firebug如何单步调试程序?

    [学习笔记] 2)火狐的firebug如何单步调试程序 马克-to-win:火狐中:工具/web 开发者/调试器,开始时没有文件,在浏览器当中点刷新按钮,文件就加载进来了. 文章转载自原文:https ...