supervisor使用方法和报错分析

supervisor使用方法和报错分析

使用环境termux + ubuntu18.04

简介

Supervisor是一个使用Python语言开发的一个用于管理与监控进程的程序。安装可以通过pip方式安装

pip install supervisor

常用指令:

supervisorctl status  #查看进程运行状态
supervisorctl start <进程名> #启动进程
supervisorctl stop <进程名> #关闭进程
supervisorctl restart <进程名> #重启进程
supervisorctl update #重新载入配置文件
supervisorctl shutdown #关闭supervisord
supervisorctl clear <进程名> #清空进程日志
supervisorctl #进入到交互模式。使用help查看所有命令。

这里主要是想通过supervisor实现开机自动执行脚本的功能

知乎上有篇详细介绍supervisor的文章:https://zhuanlan.zhihu.com/p/655433537

使用方法

使用方法可以参考https://zhuanlan.zhihu.com/p/423512485

可以在/etc目录下查看到如下文件
在这里插入图片描述

  • supervisord.conf 为配置文件
  • supervisor.d/文件夹为存放配置的地方

示例:

这里是想通过supervisor实现开机时执行/root/Rcanlog/文件家中mytest.sh脚本的功能。

mytest.ini文件的内容如下:
在这里插入图片描述
mytest.sh文件的内容如下:

#!/bin/bash

echo "hello world!" >> ~/canlog/hello.txt
data >> ~/canlog/hello.txt
exit 0

通过supervisorctl start mytestsupervisorctl update指令来启动进程。
注意: 在编辑完mytest.shmytest.ini文件后记得添加可执行权限(chmod +x mytest.shchmod 777 mytest.sh

报错分析与解决

分析

会报错的mytest.sh测试脚本的内容如下:

#!/bin/bash

echo "hello world!" >> ~/canlog/hello.txt
data >> ~/canlog/hello.txt
exit 0

在通过supervisorctl工具启动自己的测试脚本时会出现如下报错:
在这里插入图片描述
通过supervisorctl status指令查看会出现如下状态:
在这里插入图片描述
通过如下指令可以查看报错信息:

supervisorctl tail <program_name> stdout

也可以到对应的日志输出文件中去查找对应的输出信息

实际测试发现在执行supervisor start mytest指令时,脚本内容实际也执行了,但执行了好几次。

解决

通过测试发现在mytest.sh脚本文件中exit 0前面添加sleep 1便不会再出现上述问题了

#!/bin/bash

echo "hello world!" >> ~/canlog/hello.txt
data >> ~/canlog/hello.txt
sleep 1
exit 0

现在执行启动指令后会显示如下
在这里插入图片描述
重启开机后便会自动执行上面的脚本一次。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值