守护服务Supervisor的安装和使用
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
最新文章
- javascript类型系统——布尔Boolean类型
- LeetCode:Move Zeroes
- jQuery的eq方法
- python(七)字符串格式化、生成器与迭代器
- A daemon process class in python
- Oracle中的伪列
- laravel5-目录结构分析
- Java的四种引用
- “我爱淘”第二冲刺阶段Scrum站立会议2
- Android Studio 学习 - HelloWorld
- Linux free字段解析
- 【转】CUDA5/CentOS6.4
- 《C程序设计语言》【PDF】下载链接:
- 触摸事件,手势识别(UITouch,UIGestureRecognizer)
- zabbix系列(四)Zabbix3.0.4添加对Nginx服务的监控
- 修改之前某次commit日志和内容
- 在nodejs里面是用类似配置文件的方法
- Linux监控远程端口是否开启脚本
- poj 3067 Japan(树状数组求逆序数)
- h5 html5 模拟时钟 页面
热门文章
- oracle传输表空间
- AnimationDrawable
- Throughput Controller(吞吐量控制器) 感觉就像个线程控制器来的
- jmeter 调用python的方法三种 (还没试)
- 分组卷积+squeezenet+mobilenet+shufflenet的参数及运算量计算
- Arrange seat of a bench for people
- Nginx使用默认配置启动异常处理
- [Tensorflow] 使用 model.save_weights() 保存 / 加载 Keras Subclassed Model
- 部署zabbix监控平台(源码安装)
- npm EPERM: operation not permitted