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守护进程完毕。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值