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进程守护的更多相关文章

  1. Linux服务器部署.Net Core笔记:目录

        目录 Linux服务器部署.Net Core笔记:一.开启ssh服务 Linux服务器部署.Net Core笔记:二.安装FTP Linux服务器部署.Net Core笔记:三.安装.NetC ...

  2. Linux服务器部署.Net Core笔记:六、安装MySQL

    接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源 ...

  3. Linux服务器部署.Net Core笔记:五、安装Nginx

    我们搜索一下yum库关于nginx的rpm包:yum list | grep nginx 找到rpm安装包,我们就可以使用yum直接安装了:yum install nginx 修改nginx配置文件: ...

  4. Linux服务器部署.Net Core笔记:三、CentOS 7上安装.NetCore运行环境

    1.要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要.每台机器只需要做一次. 打开命令提示符并运行以下命令:sudo rpm -Uvh https:/ ...

  5. Linux服务器部署.Net Core笔记:二、安装FTP

    1.安装 安装ftp:yum install -y vsftpd 将ftp设置开机启动:systemctl enable vsftpd.service 2.配置 安装好后在ftp配置文件里进行配置 : ...

  6. Linux服务器部署.Net Core笔记:一、开启ssh服务

    开启ssh服务需要root权限,先用root账户登陆系统 在安装ssh前我们先更新一下yum:yum update 先检查有没有安装ssh服务:rpm -qa | grep ssh 如果没有安装ssh ...

  7. Linux服务器部署系列之八—Sendmail篇

    Sendmail是目前Linux系统下面用得最广的邮件系统之一,虽然它存在一些不足,不过,目前还是有不少公司在使用它.对它的学习,也能让我们更深的了解邮件系统的运作.下面我们就来看看sendmail邮 ...

  8. Linux服务器部署系列之七—OpenLDAP篇

    LDAP(轻量级目录访问服务),通过配置这个服务,我们也可以在linux下面使用目录的形式管理用户,就像windows下面的AD一样,方便我们管理.下面我们就一起来配置openldap服务.本文运行环 ...

  9. Linux服务器部署系列之一—Apache篇(下)

    接上篇 linux服务器部署系列之一—Apache篇(上)    四.管理日志文件 Apache日志分为访问日志和错误日志两种: 1)访问日志 用于记录客户端的访问信息,文件名默认为access_lo ...

随机推荐

  1. python3 之 内置函数enumerate

    python3 内置函数enumerate一.简介: 该函数在字面上是枚举.列举的意思,用于将一个可遍历的数据对象(如列表.元组或字符串)组合为一个索引序列, 同时列出数据和数据下标,一般用在 for ...

  2. (四)OpenStack---M版---双节点搭建---Glance安装和配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 1.创建glance数据库 2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限 3 ...

  3. 04_seaborn基本使用

    1.seaborn设置整体风格 seaborn提供5中主题风格: darkgrid whitegrid dark white ticks 主要通过set()和set_style()两个函数对整体风格进 ...

  4. 预分配——fallocate的前世今生

    最近比较懒,还是加班写点东西吧,不然过段时间又把这些整理的东西弄丢了. 写什么呢?写一些跟工作相关的吧!因为笔者从事多媒体录像相关的开发工作,因此常常涉及到优化写卡策略.提升写卡性能相关的方面的事情. ...

  5. SpringBoot项目集成Hystrix

    Hystrix Hystrix是由Netflix开源的一个服务隔离组件,通过服务隔离来避免由于依赖延迟.异常,引起资源耗尽导致系统不可用的解决方案. 1.什么是服务熔断   服务熔断就是对该服务的调用 ...

  6. 02 jQuery中的事件、动画、复合函数

    jQuery中的事件 在JavaScript中,常用的基础事件有鼠标事件.键盘事件.window事件.表单事件.事件绑定和处理函数的语法格式如下 语法q 事件名 = "函数名()" ...

  7. js的模糊查询

    在项目中会用到模糊查询,之前在首页是用的element的tree显示的目录,会有用到搜索,但tree里边会有自带的模糊查询,用filter-node-method方法使用 但上次的项目中 又涉及到不试 ...

  8. Scrapy爬虫及案例剖析

    由于互联网的极速发展,所有现在的信息处于大量堆积的状态,我们既要向外界获取大量数据,又要在大量数据中过滤无用的数据.针对我们有益的数据需要我们进行指定抓取,从而出现了现在的爬虫技术,通过爬虫技术我们可 ...

  9. 这是一个测试 hello world

    第一次写博客,冒着生命危险尝试一下,发说说 搞了半天,发现原创文章在随笔发,我以为在文章目录发,白白在文章那里建了分类,太难了吧我

  10. 【经验分享】linux交叉编译 - openssl动态库

    一.准备工作 1.到openssl官网下载最新版本openssl(如openssl-1.1.1d.tar.gz),上传到linux编译机上(如上传到目录/home/test下),并使用tar -xvf ...