linux中supervisor的安装与使用入门(如何添加常驻进程)(代码片段)

林猛男 林猛男     2022-12-13     752

关键词:

我的系统是CentOS7.5

一、安装

运行下面安装命令

yum install supervisor

安装好后在/etc下会生成一个supervisord.conf文件及一个supervisord.d文件目录,如图所示

supervisord.conf是一些默认配置,可自行修改为指定目录,或者不修改也可以

二、新建常驻进程

在supervisord.d文件目录下,新建demo.ini,内容如下

; 程序名称,终端控制时需要的标识
[program:cancel_verify]
; 命令执行的目录
;directory=/data/www/
; 运行程序的命令
command=/usr/local/php7.2/bin/php /data/www/develop/develop/xialv/app/jobs/Xladmin/Statement/CancelVerifyWork.php > /data/logs/supervisord/CancelVerifyWork.log
; 默认为1
numprocs=1
; 默认为 %(program_name)s,即 [program:x] 中的 x
process_name=%(program_name)s_%(process_num)02d
; 以哪个用户来运行该进程
user=www
; supervisor启动时自动该应用
autostart=true
; 程序崩溃时自动重启
autorestart=true
; 进程持续运行多久才认为是启动成功
; startsecs=2
; 重试次数
; startretries=5
; 重定向输出的日志
redirect_stderr=true
stdout_logfile=/data/logs/supervisord/cancel_verify.log
loglevel=info

实际代码案例图示如下:

三、服务启动

supervisord -c /etc/supervisord.conf 

四、常用命令

supervisorctl reload //重启
supervisorctl status //查看所有进程的状态
supervisorctl stop demo //停止
supervisorctl start demo //启动
supervisorctl restart demo //重启
supervisorctl update //配置文件修改后可以使用该命令加载新的配置

五、关于守护进程

在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。由于在linux中,每个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于这个终端,这个终端被称为这些进程的控制终端,当控制终端被关闭的时候,相应的进程都会自动关闭。但是守护进程却能突破这种限制,它脱离于终端并且在后台运行,并且它脱离终端的目的是为了避免进程在运行的过程中的信息在任何终端中显示并且进程也不会被任何终端所产生的终端信息所打断。它从被执行的时候开始运转,直到整个系统关闭才退出。

此处的创建守护进程,是指发布在Linux上 asp.net core 程序的dotnet xxx.dll命令的宿主进程创建一个守护进程。

在 Linux 上有很多可以管理进程的工具,我们使用 Supervisor 来做这个事情。原因有两点:

  • 1、它是微软官方文档推荐的,降低学习成本。
  • 2、它并不一定是最好的,但一定是文档最全的。

六、其他:配置supervisord开机启动(非必须,自行决定)

a.在指定目录下创建文件supervisord.service

vim /usr/lib/systemd/system/supervisord.service

b.输入以下内容:

[Unit]
Description=Supervisor daemon 

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s 

[Install]
WantedBy=multi-user.target 

保存并退出 ,执行以下命令:

systemctl enable supervisord

提示:

Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.

验证是否为开机启动:

systemctl is-enabled supervisord

提示:
enabled
表示设置成功!

至此,创建supervisor守护进程完毕。

supervisor的安装与使用入门

Supervisor是一个进程管理工具,官方的说法用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor这个工具主... 查看详情

supervisor的安装与使用

Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将... 查看详情

supervisor的安装和入门

...进行部署,所以发现了一个非常好用的进程管理工具——Supervisor。Supervisor(http://supervisord.org/)是用Python实现的一款非常实用的进程管理工具。supervisor会帮你把管理的应用程序转成daemon程序,而且可以方便的通过命令开启、关... 查看详情

进程管理工具supervisor的安装与使用教程(代码片段)

  supervisor是用python写的一个进程管理工具,用来启动,重启,关闭进程。下面这篇文章主要给大家介绍了关于python实现的进程管理工具supervisor的安装与使用的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。  前... 查看详情

10:supervisor进程管理工具(代码片段)

1.1supervisor介绍  1、什么是supervisor      1. Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。、      2.作用:它可以很方便的监听、启动、停止、重启一... 查看详情

supervisor安装与配置(代码片段)

Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被... 查看详情

supervisor进程管理工具(代码片段)

1、什么是supervisorSupervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。、作用:它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意... 查看详情

supervisor安装与问题

【转】安装supervisor以及可能碰到的问题单击此处查看原文supervisor作为一个进程管理的python软件非常的给力但是一不小心就会遇到一些问题就比如下面这个:unix:///var/run/supervisor.socknosuchfile这个问题一般来说有几个原因:supervisord没... 查看详情

linux入门ubuntu下vim编辑器安装与使用

...接:http://jingyan.baidu.com/article/219f4bf7d03187de452d3862.html一、安装vim 控制台版本的vim随ubuntu一起发行,因此没必要安装.然而,如果您更喜欢GUI界面下的vim的话,请安装vim-gtk软件包,有以下两种方法:1、在UbuntuSoftwareCenter中搜索vim-gtk,并... 查看详情

supervisor的配置与使用

环境:ubuntu14.04lts http://supervisord.org/liunx下有很多守护进程的工具,如nohup,screen,supervisor等,supervisor是用Python开发的进程管理程序,能将一个普通的命令行进程变为后台daemon,异常退出时能自动重启。#安装sudoapt-getinstallsupe... 查看详情

linux使用进程管理工具supervisor(代码片段)

1.supervisor是使用python进行开发的运行在linux服务器上的进程管理工具supervisor需要运行在python2环境,如果需要使用supervisor管理python3的项目,需要借助于虚拟环境2.安装supervisor:pipinstallsupervisor3.生成配置文件:echo_supervisord_conf>/... 查看详情

linux使用supervisor守护进程(代码片段)

Supervisor是什么是Linux/Unix系统下的一个进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起ÿ... 查看详情

进程管理工具之supervisor(代码片段)

...程状态,在意外结束时能够自动重启等。此时就可以使用supervisor。  supervisor是使用Python开发的一套通用的进程管理程序,能够将一个普通的命令行进程变成后台的守护进程,并且监控进程的状态,异常退出时能够自动重启&nbs... 查看详情

一文搞懂supervisor进程管理

参考技术A使用Python编写的进程管理程序supervisor来管理Python程序那是最合适不过了,supervisor基于CS架构,主要有以下两个组成部分:基于ubuntu16.04,不同linux发行版均可使用包管理器进行安装,也可以使用源码安装和pip安装pip安装... 查看详情

centos7安装supervisor及使用

Supervisor官网链接:http://supervisord.org/installing.html安装与设置开机启动: http://blog.csdn.net/fenglailea/article/details/77146248#测试安装是否成功echo_supervisord_conf最简单的配置[program:foo]command=/bin/cat加载自定义配置:&n 查看详情

rabbitmq的安装与使用

...:http://www.cnblogs.com/chunguang/p/5634342.html 这里主要设置supervisor管理和权限配置1.首先rabbitmq-server rabbitmqctl rabbitmq-plugins脚本最前面加上下面环境变量(我的环境用supervisor管理,或者非root账号管理的时候提示找不到erl 查看详情

alpine编译安装tengine,并使用supervisor启动

Alpine是一个小型的linux系统,官方docker镜像只有不到5MB,非常适合作为容器镜像。AlpineLinuxisasecurity-oriented,lightweightLinuxdistributionbasedonmusllibcandBusybox.AminimalDockerimagebasedonAlpineLinuxwithacompletepackageindexand 查看详情

supervisor记录使用过程中的bug

...实管理的gunicorn没有直接被干掉还是在运行着,重点是******supervisor******中显示管理的进程已经关闭,但项目确实在运行, 可以看出,后台进程还是运行中干掉gunicorn进程后,重启启动supervisor可以看出supervisor管理的主进程号,... 查看详情