此篇介绍一下使用supervisor来守护正在运行中的程序。

官网

supervisor

简介

supervisor 是一个使用Python开发的守护程序,它可以对单台机器上的程序进行启停管理、自动重启等。

安装启动

brew install supervisor

安装后会生成两个可执行程序:

  1. supervisortd:守护进程服务
  2. supervisorctl:客户端,用于命令行交互

启动

放到后台一直启动:

brew services start supervisor
根据配置文件单次启动:
supervisord -c /usr/local/etc/supervisord.ini

使用示例

例如使用Supervisor守护进程来配置Redis:

  1. 配置守护进程文件,在/etc/supervisord.d/ 下新建 redis.conf
vi /etc/supervisord.d/redis.conf
  1. 添加以下内容
# 新建一个应用并设置一个名称,这里设置为 redis
[program:redis]
# 设置命令在指定的目录内执行
directory=/usr/local/redis/bin
# 这里为您要管理的项目的启动命令
command=/usr/local/redis/bin/redis-server
# 以哪个用户来运行该进程
user=root
# supervisor 启动时自动该应用
autostart=true
# 进程退出后自动重启进程
autorestart=true
# 进程持续运行多久才认为是启动成功
startsecs=1
# 重试次数
startretries=3
# stderr日志输出位置
stderr_logfile=/soft/logs/redis/stderr.log
# stdout 日志输出位置
stdout_logfile=/soft/logs/redis/stdout.log
  1. 新建日志文件夹
mkdir -p /soft/log/redis/
  1. 更新重启所有Supervisor配置的任务
supervisorctl  reload
  1. 只启动更新过配置的任务
supervisorctl update [job_name]
  1. 单独停止或启动某个任务
supervisorctl [start | stop | restart | status ] [job_name]
  1. 查看Supervisor状态,redis是否被添加
supervisorctl  status