Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护
Supervisor 是用 Python 开发的 Linux/Unix 系统下的一个进程管理工具。它可以使进程脱离终端,变为后台守护进程(daemon)。实时监控进程状态,异常退出时能自动重启。
Supervisor 不支持任何版本的 Window 系统;仅支持在 Python2.4 或更高版本,但不能在任何版本的 Python 3 下工作。
联网状态下,官方推荐首选安装方法是使用easy_install,它是setuptools(Python 包管理工具)的一个功能。所以先执行如下命令安装 setuptools:yum install python-setuptools

然后执行如下命令安装 Supervisor:easy_install supervisor

输入命令查看配置文件模板来验证安装:echo_supervisord_conf

接着通过如下命令创建目录,这目录是为了让 Supervisor 加载默认配置用的目录:mkdir /etc/supervisor

加载目录有了,然后通过echo_supervisord_conf程序(用来生成初始配置文件)来初始化一个配置文件:echo_supervisord_conf > /etc/supervisor/supervisord.conf

打开新的配置文件修改:vi /etc/supervisor/supervisord.conf

将底部的:
;[include]
;files = relative/directory/*.ini
修改为:
[include]
files = conf.d/*.conf
这样supervisord加载时就会自动加载/etc/supervisor/conf.d目录下,所有扩展名为.conf的配置文件。
通过命令进入/conf.d目录:cd /etc/supervisor/conf.d

创建并写入配置信息:vi testweb.conf
[program:testweb]
command= dotnet TestWeb.dll --urls="http://*:8080"
directory= /home/vsftpd/lk_ftp/TestWeb
autostart=true
autorestart=true
startretries=
startsecs=
user=root
priority=
stderr_logfile=/var/log/WebApplication1.err.log
stdout_logfile=/var/log/WebApplication1.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
stopsignal=INT
program:自定义进程名称
command:程序启动命令
directory:命令执行的目录,即项目部署路径
autostart:在Supervisord启动时,程序是否启动
autorestart:程序退出后自动重启
startretries:启动失败自动重试次数,默认是3
startsecs:自动重启间隔
user:设置启动进程的用户,默认是root
priority:进程启动优先级,值小的优先启动
stderr_logfile:标准错误日志
stdout_logfile:标准输出日志
environment:进程环境变量
stopsignal:请求停止时用来杀死程序的信号
完成配置后就可以启动Supervisor 服务了:supervisord -c /etc/supervisor/supervisord.conf

每次修改配置文件后,都要执行重启命令,这里要注意,因为没有环境变量,这种命令都要在supervisor安装目录里执行。
查看是否生效:ps -ef | grep dotnet

进入/usr/lib/systemd/system目录,配置Supervisor开机启动:cd /usr/lib/systemd/system

新建一个“supervisord.service”文件写入配置:vi 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
设置为随系统自动启动:systemctl enable supervisor

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

Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护的更多相关文章
- Linux服务器部署.Net Core笔记:目录
目录 Linux服务器部署.Net Core笔记:一.开启ssh服务 Linux服务器部署.Net Core笔记:二.安装FTP Linux服务器部署.Net Core笔记:三.安装.NetC ...
- Linux服务器部署.Net Core笔记:六、安装MySQL
接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源 ...
- Linux服务器部署.Net Core笔记:五、安装Nginx
我们搜索一下yum库关于nginx的rpm包:yum list | grep nginx 找到rpm安装包,我们就可以使用yum直接安装了:yum install nginx 修改nginx配置文件: ...
- Linux服务器部署.Net Core笔记:三、CentOS 7上安装.NetCore运行环境
1.要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要.每台机器只需要做一次. 打开命令提示符并运行以下命令:sudo rpm -Uvh https:/ ...
- Linux服务器部署.Net Core笔记:二、安装FTP
1.安装 安装ftp:yum install -y vsftpd 将ftp设置开机启动:systemctl enable vsftpd.service 2.配置 安装好后在ftp配置文件里进行配置 : ...
- Linux服务器部署.Net Core笔记:一、开启ssh服务
开启ssh服务需要root权限,先用root账户登陆系统 在安装ssh前我们先更新一下yum:yum update 先检查有没有安装ssh服务:rpm -qa | grep ssh 如果没有安装ssh ...
- Linux服务器部署系列之八—Sendmail篇
Sendmail是目前Linux系统下面用得最广的邮件系统之一,虽然它存在一些不足,不过,目前还是有不少公司在使用它.对它的学习,也能让我们更深的了解邮件系统的运作.下面我们就来看看sendmail邮 ...
- Linux服务器部署系列之七—OpenLDAP篇
LDAP(轻量级目录访问服务),通过配置这个服务,我们也可以在linux下面使用目录的形式管理用户,就像windows下面的AD一样,方便我们管理.下面我们就一起来配置openldap服务.本文运行环 ...
- Linux服务器部署系列之一—Apache篇(下)
接上篇 linux服务器部署系列之一—Apache篇(上) 四.管理日志文件 Apache日志分为访问日志和错误日志两种: 1)访问日志 用于记录客户端的访问信息,文件名默认为access_lo ...
随机推荐
- python爬取中国知网部分论文信息
爬取指定主题的论文,并以相关度排序. #!/usr/bin/python3 # -*- coding: utf-8 -*- import requests import linecache impor ...
- PowerMock学习(七)之Mock Constructor的使用
前言 我们在编码的时候,总习惯在构造器中传参数,那么在powermock中是怎么模拟带参数构造的呢,这并不难. 模拟场景 我们先模拟这样一个场景,通过dao中的传入一个是布尔类型(是否加载)和一个枚举 ...
- 小白学 Python 爬虫(7):HTTP 基础
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- (二)OpenStack---M版---双节点搭建---数据库安装和配置
↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 本章节只在Controller节点执行 1.安装Mariadb数据库来存储信息 2.NoSQL数 ...
- PHP+Redis实现延迟任务,实现自动取消与完成订单
简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件) : (A)业务场景: 1.当一个业务触发以后需要启动一个定时任务,在指定时间内再去执行一个任务( ...
- Erlang/Elixir精选-第1期
第1期(20191202) 文章 A short guide to the structure and internals of the Erlang distributed messaging fa ...
- 【前端】之jQuery基础知识
jQuery 简介 在项目中引入jQuery: 去jQuery官网下载jQuery包:jquery-3.2.1.min.js 将下载的jQuery包添加到项目目录中 在标签下添加jQuery引用:&l ...
- 【数据结构】之顺序表(Java语言描述)
之前总结过使用C语言描述的顺序表数据结构.在C语言类库中没有为我们提供顺序表的数据结构,因此我们需要自己手写,详细的有关顺序表的数据结构描述和C语言代码请见[我的这篇文章]. 在Java语言的JDK中 ...
- 02-kubeadm初始化Kubernetes集群
目录 部署 组件分布 部署环境 kubeadm 步骤 基础环境 基础配置 安装基础组件 配置yum源 安装组件 初始化 master 导入镜像 执行命令: 查看组件状态 查看node状态 安装flan ...
- PHP开发中session无法获取和保存问题解决方法
今天在程序设计中无法在session中获得内容,使用编辑器打开php.ini配置文件,在其中搜索"session.save_path", 把行中前面注释用的";" ...