此篇介绍一下使用supervisor来守护正在运行中的程序。
官网
简介
supervisor 是一个使用Python开发的守护程序,它可以对单台机器上的程序进行启停管理、自动重启等。
安装启动
brew install supervisor
安装后会生成两个可执行程序:
- supervisortd:守护进程服务
- supervisorctl:客户端,用于命令行交互
启动
放到后台一直启动:
brew services start supervisor
根据配置文件单次启动:
supervisord -c /usr/local/etc/supervisord.ini
使用示例
例如使用Supervisor守护进程来配置Redis:
- 配置守护进程文件,在/etc/supervisord.d/ 下新建 redis.conf
vi /etc/supervisord.d/redis.conf
- 添加以下内容
# 新建一个应用并设置一个名称,这里设置为 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
- 新建日志文件夹
mkdir -p /soft/log/redis/
- 更新重启所有Supervisor配置的任务
supervisorctl reload
- 只启动更新过配置的任务
supervisorctl update [job_name]
- 单独停止或启动某个任务
supervisorctl [start | stop | restart | status ] [job_name]
- 查看Supervisor状态,redis是否被添加
supervisorctl status