Linux中Supervisor的安装与使用入门(如何添加常驻进程)

Posted 林猛男

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中Supervisor的安装与使用入门(如何添加常驻进程)相关的知识,希望对你有一定的参考价值。

我的系统是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守护进程完毕。

以上是关于Linux中Supervisor的安装与使用入门(如何添加常驻进程)的主要内容,如果未能解决你的问题,请参考以下文章

Linux Supervisor的安装与使用入门---SuSE

Linux中Supervisor的安装与使用入门(如何添加常驻进程)

Supervisor的安装与使用入门

Supervisor的安装与使用入门

Linux进程管理工具 Supervisord 的安装 及 入门教程

Supervisor的安装与使用