首页 » 运维 » 基本知识 » 正文

使用Supervisord来监控脚本

 

有时候我们发现我们自己写的脚本需要一直运行,哪怕报错退出来,也应该自动重启,这个时候我们就需要有个工具帮我门监控并在程序停止或者失败时帮我们重启,哪怕是机器重启了,它也确保脚本是运行状态

The Script

下边这个简单的例子是一个NodeJS的脚本,用来监听一些东西并作出相应的动作,我们只要明确我们需要这个脚本一直是在运行的,我们现在要实现这个需求

 

脚本路径/srv/http.js:

 

Supervisord

Supervisord是一个简单的工具来帮我们实现这个目标,让我们在Ubuntu上查看一下:

 

安装

安装命令:

启动:

配置

所有的配置文件都在文件夹/etc/supervisor.如果我们打开/etc/supervisord/supervisord.conf, :

所以只要是在/etc/supervisor/conf.d并且结尾是.conf,配置文件就会被自动加载

下边我们就要告诉Supervisord如何来监控我们的脚本

vi /etc/supervisor/conf.d/webhooks.conf:

注解:

  • [program:nodehook] – 命名
  • command – 启动的命令
  • directory – 启动命令前要cd的目录
  • autostart -.这个为True时,每次Supervisord启动时脚本自动启动,特别是重启系统后
  • autorestart – 自动重启
  • startretries –  报告失败前retry的次数
  • stderr_logfile – 错误日志
  • stdout_logfile –  正常日志
  • user – 执行脚本的用户
  • environment –  执行脚本时的环境变量

我们要手动创建目录,因为Supervisord不会自动创建目录

Controlling Processes

查看:

ps:

 

管理:

帮助文档

停止脚本:

启动

我们可以使用<ctrl+c> 或者输入 “exit”  来退出管理工具

我们也可以直接在命令行管理我们的脚本:

参考:https://serversforhackers.com/c/monitoring-processes-with-supervisord

Zhiming Zhang

Senior devops at Appannie
一个奔跑在运维路上的胖子
Zhiming Zhang

发表评论