supervisor 重启_如何用Supervisor 管理你的进程

55fee9d57a63a7ba36cc9d1d570258ce.png
最近在项目部署中,经常使用Supervisor来管理进程。这里简单介绍下如何用Supervisor来管理进程。

什么是Supervisor?

Supervisor 是Python编写的 Client/Server 模式的系统,通过supervisor,可以对类Unix操作系统的进程进行监控和管理。简单来说,当你的项目部署到服务器后,可以通过 Supervisor 便捷的管理项目程序的启动和停止。

安装

pip install supervisor

如果是ubuntu系统,可以用 api-get

配置

  • 运行 echo_supervisord_conf > /etc/supervisord.conf 生成配置文件supervisord.conf.
如果遇到报错 permission denied: /etc/supervisord.conf,那么就是权限不够,你可以执行这个命令: sudo su - root -c "echo_supervisord_conf > /etc/supervisord.conf"
  • 对 supervisord.conf 文件进行配置,主要是:
[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; the path to the socket file

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; main log file; default $CWD/supervisord.log

[include]
files = /etc/supervisord.d/*.ini ; 引入 `/etc/supervisord.d/` 下的 `.ini` 文件
  • 创建文件夹 /etc/supervisord.d
  • 在文件夹 /etc/supervisord.d/ 下创建对应项目的配置文件,例如: demo.ini ,简单示例如下:
[program:demo]
command=/root/demo/bin/demo -srcPath=/root/demo -runMode=production
directory=/root/demo
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1                    ; number of processes copies to start (def 1)
startsecs=1                   ; number of secs prog must stay running (def. 1)
startretries=3                ; max # of serial start failures (default 3)
user=root                     ; setuid to this UNIX account to run the program
redirect_stderr=true          ; redirect proc stderr to stdout (default false)
stdout_logfile=/root/demo/logs/demo.stdout.log
stdout_logfile_maxbytes=50MB  ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
stdout_events_enabled=false   ; emit events on stdout writes (default false)
stderr_logfile=/root/demo/logs/demo.stderr.log
stderr_logfile_maxbytes=10MB  ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups=10     ; # of stderr logfile backups (default 10)
stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
stderr_events_enabled=false   ; emit events on stderr writes (default false)
  • 运行 supervisord -c /etc/supervisord.conf 启动
  • 运行 ps aux | grep supervisord 查看 supervisord 是否正在运行

使用Supervisorctl

Supervisorctl 是 supervisord 的一个命令行客户端工具

  • 运行以下命令指定其读取配置文件: supervisorctl -c /etc/supervisord.conf
  • 运行 supervisorctl 进入客户端
  • 运行 reread 读取项目 ini 文件
  • 运行 add xxx 命令后,被添加的项目将会一直显示在supervisorctl 中,便于管理

常用命令

  1. supervisord: 初始启动Supervisord,启动、管理配置中设置的进程;
  2. supervisorctl stop(start, restart) xxx,停止(启动,重启)某一个进程(xxx);
  3. supervisorctl reread: 只载入最新的配置文件, 并不重启任何进程;
  4. supervisorctl reload: 载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程;
  5. supervisorctl update: 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值