supervisord 命令介绍和使用案例

supervisord 命令介绍和使用案例

supervisord 是一个用 Python 编写的进程管理工具,用于监控和管理 Linux 系统中的进程。它可以将普通的命令行进程转变为后台守护进程(daemon),并监控进程状态,在进程异常退出时自动重启。它通过 fork/exec 的方式把被管理的进程当作自己的子进程来启动。

主要功能:

  • 进程管理: 能够启动、停止、重启和关闭进程.
  • 自动重启: 监控进程状态,并在进程崩溃时自动重启.
  • 后台运行: 将普通命令行进程转变为后台守护进程.
  • 用户管理: 可以为 supervisord 或每个子进程设置一个非 root 用户,该用户可以管理其对应的进程.
  • 日志管理: 能够记录进程的运行日志,方便问题排查

安装部署

命令参数

​ 

配置:

创建配置文件: 使用 echo_supervisord_conf 命令创建配置文件模板,例如 echo_supervisord_conf > /etc/supervisord.conf. 也可以自定义配置文件路径,启动 supervisord 时使用 -c 参数指定.

配置任务: 修改 supervisord.conf 文件,添加需要管理的进程配置. 建议将进程配置文件放在 /etc/supervisor/conf.d/ 目录下,并在 supervisord.conf 中使用 include 引入.

[program:程序名称]
command=启动命令
directory=程序启动目录
user=哪个用户启动
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile = /data/logs/usercenter_stdout.log  ; stdout 日志文件
  • 配置 HTTP 服务 (可选): 开启 HTTP 服务可以通过 Web 页面查看和管理任务。 修改 supervisord.conf 文件,打开 inet_http_server 配置项.
  • [inet_http_server]
    port = 127.0.0.1:9001
    username = xxx
    password = xxx
    

常用命令:

  • 启动 supervisord: supervisord -c /etc/supervisord.conf(指定配置文件) 或直接运行supervisord.
  • 使用 supervisorctl 管理:
    • 进入 supervisorctl 界面: supervisorctl -c /etc/supervisord.conf.
    • 常用 supervisorctl 命令:
      • help: 查看帮助.
      • status: 查看程序状态.
      • stop <program_name>: 关闭指定程序.
      • start <program_name>: 启动指定程序.
      • restart <program_name>: 重启指定程序.
      • tail -f <program_name>: 查看程序日志.
      • reread: 读取有更新的配置文件,不会启动新添加的程序.
      • update: 重启配置文件修改过的程序.
      • shutdown: 关闭 supervisord 守护进程和所有子进程
  • 直接在 shell 中使用 supervisorctl 命令: supervisorctl status, supervisorctl stop <program_name>, 等.

使用案例:

启动测试案例

创建 sh 配置文件 /etc/supervisord.d/meng.conf:

[program:meng]
command=/bin/bash -f /root/meng.sh -l /root/meng.log
numprocs=1
autostart=true
autorestart=true
log_stdout=true
log_stderr=true

重新加载配置并启动

supervisorctl reread
supervisorctl update

注意事项:

  • 确保配置文件路径正确.
  • 使用 visudo 命令编辑 /etc/sudoers 文件,避免配置错误.
  • 使用 supervisorctl 命令时,需要指定与 supervisord 相同的配置文件.
  • 经常查看日志文件 (supervisord 日志和各个 program 的日志文件) ,以便排查问题.
  • supervisord 管理 gunicorn 时,gunicorn 的 daemon 选项需要设置为 False.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lisanmengmeng

蚊子腿也是肉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值