Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。

接触到Supervisor,是因为将AspNet Core项目部署到CentOS时,执行dotnet XXX.dll后,项目是可以正常运行起来,但是Shell窗口关闭后项目就停了,后来就看到需要配置守护服务

1.安装Supervisor

yum install -y epel-release

  安装完成后,执行supervisord --version 会显示版本

2.设置Supervisor开机启动

systemctl enable supervisord
systemctl start supervisord

  不是root用户的话,命令前面记着加上sudo

3.创建配置文件

配置文件的路径为:/etc/supervisord.conf,执行 cat /etc/supervisord.conf,可以看到配置文件的指定目录为:

所以我们进到这个路径下创建配置文件

执行命令 vi webcore.ini会创建webcore.ini文件,然后输入下面的内容:

[program:webcore]
command=/usr/bin/dotnet WebCore.dll ; 输入执行命令,这里表示 dotnet WebCore.dll
directory=/home/www/XCJS-Test ; 应用程序根目
autostart=true ; 是否自动启动,当 supervisor 加载该配置文件的时候立即启动它
autorestart=true ; 是否自动重启,当执行 dotnet WebCore.dll 启动失败时,会重复的自动重启
logfile_maxbytes=50MB ; 该配置文件输出单个日志文件的大小
logfile_backups=10 ; 日志备份个数
loglevel=info ; 记录日志级别
stderr_logfile=/data/logs/webcore/webcore.err.log ; 指定标准错误输出日志文件
stdout_logfile=/data/logs/webcore/webcore.out.log ; 指定标准输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 可配置环境变量,该环境变量将通过执行 dotnet WebCore.dll 命令>的时候传入到 .NET Core 应用程序中
user=root ;启动服务的用户
stopsignal=INT
redirect_stderr=true

  4.创建日志文件目录

mkdir -p /data/logs/webcore

  配置完成后,记着重启一下supervisor

systemctl restart supervisord

总结

安装Supervisor有很多种方法,这里暂时先只介绍了一种,后续会补充其它方法。

项目在运行的状态下,如果要更新一些东西,替换完后需要重启(systemctl restart supervisord)一下守护服务才会生效。

参考:

http://www.supervisord.org/introduction.html

https://www.cnblogs.com/viter/p/10441409.html

最新文章

  1. javascript类型系统——布尔Boolean类型
  2. LeetCode:Move Zeroes
  3. jQuery的eq方法
  4. python(七)字符串格式化、生成器与迭代器
  5. A daemon process class in python
  6. Oracle中的伪列
  7. laravel5-目录结构分析
  8. Java的四种引用
  9. “我爱淘”第二冲刺阶段Scrum站立会议2
  10. Android Studio 学习 - HelloWorld
  11. Linux free字段解析
  12. 【转】CUDA5/CentOS6.4
  13. 《C程序设计语言》【PDF】下载链接:
  14. 触摸事件,手势识别(UITouch,UIGestureRecognizer)
  15. zabbix系列(四)Zabbix3.0.4添加对Nginx服务的监控
  16. 修改之前某次commit日志和内容
  17. 在nodejs里面是用类似配置文件的方法
  18. Linux监控远程端口是否开启脚本
  19. poj 3067 Japan(树状数组求逆序数)
  20. h5 html5 模拟时钟 页面

热门文章

  1. oracle传输表空间
  2. AnimationDrawable
  3. Throughput Controller(吞吐量控制器) 感觉就像个线程控制器来的
  4. jmeter 调用python的方法三种 (还没试)
  5. 分组卷积+squeezenet+mobilenet+shufflenet的参数及运算量计算
  6. Arrange seat of a bench for people
  7. Nginx使用默认配置启动异常处理
  8. [Tensorflow] 使用 model.save_weights() 保存 / 加载 Keras Subclassed Model
  9. 部署zabbix监控平台(源码安装)
  10. npm EPERM: operation not permitted