Linux Supervisor 守护进程基本配置

supervisor:C/S架构的进程控制系统,可使用户在类UNIX系统中监控、管理进程。常用于管理与某个用户或项目相关的进程。

组成部分
supervisord:服务守护进程
supervisorctl:命令行客户端
Web Server:提供与supervisorctl功能相当的WEB操作界面
XML-RPC Interface:XML-RPC接口

查看版本信息:

supervisord -v

参考地址:http://beginman.cn/linux/2015/04/06/Supervisor/

官网文档地址:http://www.supervisord.org

安装:

yum install python-setuptoolseasy_install supervisor

配置:

1、在etc下创建目录,并赋权限

mkdir -m 700 -p /etc/supervisor

2、在目录“ /etc/supervisor”下创建配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

3、修改配置文件

vim /etc/supervisor/supervisord.conf

在文件末尾添加,注意首尾需无空格,需顶格

[include]
files=/etc/supervisor/conf.d/*.conf

4、在目录“/etc/supervisor”下创建dotnet core 进程配置文件存放目录“conf.d”

 mkdir -m 700 /etc/supervisor/conf.d

5、创建进程配置文件,示例:Nginx和asp.net core的守护进程,关键配置:

mkdir -m 700 /etc/supervisor/conf.d/OneAspNetCore.conf

asp.net core

[program:OneAspNetCore]
command=dotnet OneAspNetCore.dll ; 运行程序的命令
directory=/home/webapps/aspnet/ ; 执行前要不要先cd到目录去,一般不用
autorestart = true   ; 程序异常退出后自动重启
autostart=true       ; 随着supervisord的启动而启动
startretries = 10     ; 启动失败自动重试次数,默认是 3
numprocs=1           ; 启动几个进程
stderr_logfile=/var/log/OneAspNetCore.err.log ; 错误日志文件
stdout_logfile=/var/log/OneAspNetCore.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=KILL ; 用来杀死进程的
stopsignal=INT

注:这里的日志文件目录必须存在 supervisor不会创建该日志目录

nginx

[program:nginx]
command=systemctl start nginx ; 运行程序的命令
directory= ; 执行前要不要先cd到目录去,一般不用
autorestart = true   ; 程序异常退出后自动重启
autostart=true       ; 随着supervisord的启动而启动
startretries = 10     ; 启动失败自动重试次数,默认是 3
numprocs=1           ; 启动几个进程
stderr_logfile=/var/log/nginx/nginx.err.log ; 错误日志文件
stdout_logfile=/var/log/nginx/nginx.out.log ; 输出日志文件
user=root ; 进程执行的用户身份
stopsignal=KILL ; 用来杀死进程的
stopsignal=INT

 启动Supervisor

supervisord -c /etc/supervisor/supervisord.conf

ps:如果服务已启动,修改配置文件可用“ supervisorctl reload ”命令来使其生效

配置Supervisor开机启动

新建一个“supervisord.service”文件

#supervisord service for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s[Install]
WantedBy=multi-user.target

 

将文件拷贝至:“/usr/lib/systemd/system/”

执行命令:systemctl enable supervisord

执行命令:systemctl is-enabled supervisord #来验证是否为开机启动

重启检测是否正常!!!

web界面配置

把配置文件中 inet_http_server 前面的分号去掉 在Supervisor中 ;是注释的格式 默认是不开启web界面的

[inet_http_server]         ; inet (TCP) server disabled by default
port=*:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123 

 

 

转载于:https://www.cnblogs.com/miskis/p/6026452.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6使用object的is()方法比较两个值

此前js比较两个值是否相等时,一般使用 或 符号,我之前倾向使用后者,因为可以避免比较时触发强制类型转换,但某些情况使用 依然有问题,比如再比较NaN NaN时,返回的是false,需要使用isNaN()才能…

关闭子窗口 父窗口自动刷新

function clsoseForm(){window.opener.location.hrefwindow.opener.location.href; window.opener.location.reload();window.close();}转载于:https://blog.51cto.com/congwa/1199250

使用vue的sync修饰符进行子父组件的数据绑定

官方文档 父组件代码 <template><div><input type"button" value"我是父组件的按钮" click"show" /><!-- 在需要子组件修改的数据后加上.sync即可 --><child :isShow.syncisShow v-show"isShow" />&l…

三阶魔方还原公式

From: https://www.cnblogs.com/zqifa/p/mofang-1.html 1. 第二层棱块归位&#xff1a; 2. 顶层十字 3. 顶层棱中间块归位 这一步的目的是使顶层的4个棱中间块全部归位。 转动顶层(U)&#xff0c;若可以使一个棱中间块归位(如下图左&#xff0c;这里以[红-黄]块为例)&#x…

选项板概述

2019独角兽企业重金招聘Python工程师标准>>> 1、选项板概述 选项面板是一个包括一个或多个选项卡(Tab)&#xff0c;同一时刻只显示一个选项卡的这种用户界面。比如下图的IE选项设置界面中&#xff0c;就是一个选项板的应用&#xff0c;选项板上有“常规”、“安全”…

Vue 跳转相同路由携带不同参数,而页面不刷新

由于组件是复用的&#xff0c;若要对路由参数的变化作出响应的话&#xff0c;就需要在此组件上使用 watch&#xff08;监测变化&#xff09; $route 对象 created() {this.listQuery.code this.$route.query.id;this.getList();},watch: {$route(to, from) {//当参数改变时就会…

三阶魔方的入门教程

From: http://www.rubik.com.cn/beginner.htm 下面是三阶魔方图文教程&#xff0c;想直接看更好懂的三阶魔方视频教程请点这里 魔方别看只有26个小方块&#xff0c;变化可真是不少&#xff0c;魔方总的变化数为 或者约等于4.31019。如果你一秒可以转3下魔方&#xff0c;不计重…

oracle技术之查询初始化参数的方法(六)

查询初始化参数的方法很多&#xff0c;比如SHOW PARAMETER&#xff0c;或查询V$PARAMETER等&#xff0c;这里简单总结一下。这一篇描述CREATE PFILE的方法检查初始化参数。前面介绍了很多种方法&#xff0c;这些方法都是在数据库中查询初始化参数的设置。其实还有一种方法更加的…

MySQL LIST分区(转载)

LIST分区和RANGE分区非常的相似&#xff0c;主要区别在于LIST是枚举值列表的集合&#xff0c;RANGE是连续的区间值的集合。二者在语法方面非常的相似。同样建议LIST分区列是非null列&#xff0c;否则插入null值如果枚举列表里面不存在null值会插入失败&#xff0c;这点和其它的…

vue组件化通信之父向子传值

vue组件化通信之子向父传值 vue组件化通信之兄弟组件传值 父向子组件传值 常用的方法主要有三种&#xff1a;props、$refs、$children 建议使用前两种 使用props进行传值 parent.vue <template><div><childTest :msgmsg></childTest></div> …

Openssl的证书格式转换

PKCS 全称是 Public-Key Cryptography Standards &#xff0c;是由 RSA 实验室与其它安全系统开发商为促进公钥密码发展而制订的一系列标准。PKCS 目前共发布过 15 个标准。常用的有&#xff1a;1. PKCS#7 Cryptographic Message Syntax Standard2. PKCS#10 Certification Requ…

啦啦

Y2错题解析 数据流程图描述信息的来龙去脉和实际流程&#xff0c;反映信息在系统中流动、处理和存储的情况。程序结构图用来描述程序结构&#xff0c;一般由构成系统的要素和表达要素间关系的连线或箭头构成。因果图是一种发现问题“根本原因”的分析方法。 Spring依赖检查的常…

身份证号码格式验证

From: https://www.cnblogs.com/chenhaoyu/p/6189207.html /*** 验证身份证号码真伪* param $id* return bool*/ function checkIDCard( $id ) {$id strtoupper($id);$regx /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;if(!preg_match($regx, $id))return false;$arr_split [];if(15 …

vue组件化通信之子向父传值

vue组件化通信之子向父传值 vue组件化通信之兄弟组件传值 vue中子向父传递消息一般使用$emit&#xff0c;方法比较简单&#xff0c;直接看代码 父组件 <template><div><childTest msgmyMsg></childTest>{{msg}}</div> </template><s…

冒泡排序 C#

主程序入口class Program{static void Main(string[] args){int[] iArrary new int[] { 1, 5, 13, 6, 10, 55, 99, 2, 87, 12, 34, 75, 33, 47 };//定义数组BubbleSorter sh new BubbleSorter();sh.Sort(iArrary);for (int m 0; m < iArrary.Length; m)//输出结果Console…

emacs 入门教程,菜单汉化,配置文件等杂乱文章

首先来一发ArchWiki的Emacs简体中文的入门教程 https://wiki.archlinux.org/index.php/Emacs_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 怎样设置&#xff0c;Emacs中文菜单&#xff1f; 把包内的3个文件丢到 emacs/share/emacs/site-lisp下面。 在&#xff5e;/ 建一个 .emacs的…

[JS] Invalid Date

一般mysql存储的时间字段格式是" YYYY-MM-DD hh:mi:ss"&#xff0c;即年月日之间是通过-分隔的。 偶然的情况下&#xff0c;发现这样的格式用在js时&#xff0c;在手机浏览器上运行会失败&#xff0c;但是在PC浏览器上却是OK的。 见代码&#xff1a; const st 201…

关于element框架的el-image点击后,页面出现卡死等情况的解决方式

当el-image标签被添加时&#xff0c;页面的body就会自动添加style属性 所以我们绑定一个点击事件删除样式就可以了 <el-image style"width: 100px; height: 100px" :src"scope.row.logo" fit"scale-down" click"cancelStyle()"/&…

JAVA学习笔记-Scanner的使用

因为Scanner并不属于Lang包中&#xff0c;所以要在程序代码的最开头&#xff0c;加上&#xff1a;import java.util.Scanner;来表示导入Scanner类。这样我们在接下来的代码中就可以使用Scanner了&#xff1b; Scanner的语法为&#xff1a; Scanner s new Scanner (System.in);…

从源代码角度看Struts2返回JSON数据的原理

2019独角兽企业重金招聘Python工程师标准>>> 前面一篇文章其实只是介绍了如何在Struts2中返回JSON数据到客户端的具体范例而无关其原理&#xff0c;内容与标题不符惹来标题党嫌疑确实是笔者发文不够严谨&#xff0c;目前已修改标题&#xff0c;与内容匹配。本文将从…