首先,在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. appium-FAQ(持续更新...)

    Q1:未安装APP直接启用appium sever,初始化driver :driver = new AndroidDriver(new URL("http://127.0.0.1:4723/ ...

  2. Android 使用Intent

    使用intent可以吊起其他应用 例如发送电子邮件 public void sendEmail(View view){ Intent intent = new Intent(Intent.ACTION ...

  3. XListView实现上拉加载下拉刷新

    package com.loaderman.androiddemo; import android.content.Context; import android.util.AttributeSet; ...

  4. [Java复习] 分布式事务 Part 1

    1. CAP理论 C: Consistency 一致性 A: Availability 可用性 P: Partition tolerance 分区容错性 CAP定理:一个分布式系统不可能同时满足CAP ...

  5. ISO/IEC 9899:2011 条款5——5.2.4 环境限制

    5.2.4 环境限制 1.翻译与执行环境都约束了语言翻译器和库的实现.下面概述了对一个顺应标准实现的语言相关的环境限制:库相关的限制在条款7中讨论. 5.2.4.1 翻译限制 1.实现应该能够翻译并执 ...

  6. Eclipse中修改某个java项目的jdk版本【我】

    Eclipse中修改某个项目的jdk版本,主要有下面4个地方 右键项目名,有如下3个地方 另外如果要在Tomcat中运行,还可能需要设置运行这个项目的Tomcat的容器的 jdk 版本,设置方式:

  7. iOS 判断scrollView是否滑动到底部

      判断scrollView有没有滚动到视图的底部,用来判断下拉刷新的时间.等 - (void)scrollViewDidScroll:(UIScrollView *)scrollView1 { CG ...

  8. (八)UML之状态图

    一.概念 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Act ...

  9. CYLTabBarController的简单使用

    #pragma mark- 登录成功跳转至主页 -(void)jumpToMainVC { [UIApplication sharedApplication].statusBarStyle = UIS ...

  10. python全栈索引

    书签 python基础 太白金星 TigerLee python基础一 pytcharm安装详细教程 python基础二 python基础数据类型 Python最详细,最深入的代码块小数据池剖析 深浅 ...