supervisorctl命令的使用讲解

Posted 码农研究僧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了supervisorctl命令的使用讲解相关的知识,希望对你有一定的参考价值。

目录

1. 入门介绍

一般在linux中运行某个进程的时候,通过start、stop、restart以及reload进行运行,将其配置的服务放置在/etc/init.d/的目录下
类似如下的文章:ubuntu:防火墙配置详细讲解(全)

在讲解一下这篇博客的重点:
supervisor主要的作用是管理进程,主要通过fork/exec进程对其启动(将其作为子进程),之后supervisor作为父进程对其启动,即使断电宕机也可将其重启,主要在配置文件中书写autostart=true即可。而传统方式的当即重启脚本需要写一个脚本来监控

对比传统方式的书写,supervisor的特性作用比较大

功能传统方式supervisor
进程组写成脚本批量或者一个个重启将其多个进程放一块,当成进程组对象批量操作
监控定期查询进程号子进程挂掉的时候会通知父进程
可扩展可自个书写接口改写
权限自个书写脚本分发用户可自定义何人使用何权限分发

supervisor主要有两个命令参数:

  • supervisord : 服务端,启动supervisor即启动supervisord服务。
manong@manong-offline27-30001:~/manong/yanjiuseng$ supervisord --help
supervisord -- run a set of applications as daemons.

Usage: /usr/local/bin/supervisord [options]
  • supervisorctl:客户端,启动supervisor的监控窗口,内有监控的子进程
manong@manong-offline27-30001:~/manong/yanjiuseng$ supervisorctl --help
supervisorctl -- control applications run by supervisord from the cmd line.

Usage: /usr/local/bin/supervisorctl [options] [action [arguments]]

2. 命令讲解

supervisorctl 主要是supervisor的一个客户端管理工具,主要用来管理进程

下载这个命令完成之后,其命令的配置文件路径在:cat /etc/supervisor/supervisord.conf

  • 查询所有的子进程状态:supervisorctl status,执行supervisorctl是进到这个命令的内部

具体的参数讲解:
子进程名
运行状态(RUNNING、FATAL、STOPPED、STARTING)
进程号或者子进程的运行时间

  • 查看单个子进程的状态: supervisorctl status 子进程

  • 关闭单个子进程 :supervisorctl stop 子进程

  • 关闭所有子进程:supervisorctl stop all

  • 启动单个子进程:supervisorctl start 子进程

  • 启动所有子进程:supervisorctl start all

  • 重启单个子进程:supervisorctl restart 子进程

3. 配置文件

将其脚本配置在文件中
其配置文件的详解具体如下:(我的目录在conf文件下)

[program:xx_ccd]
# 进入到这个目录下
directory=/home/xx

# 执行虚拟环境的命令
command=/home/xx/.virtualenvs/manong/bin/uwsgi    --ini uwsgi.ini

# 用户名是这个
user=码农研究僧
numprocs=1

# 日志文件
stdout_logfile=/home/xx/logs/uwsgi.log


redirect_stderr=true
autostart=false
autorestart=true
startsecs=5
stopwaitsecs=10
killasgroup=true
priority=999
stopsignal=QUIT

以上是关于supervisorctl命令的使用讲解的主要内容,如果未能解决你的问题,请参考以下文章

apache ubunte 重启命令

lnmp环境中的:supervisorctl

lnmp环境中的:supervisorctl

如何使用supervisorctl仅重新启动某些进程?

Mint / Ubunt日常所需命令软件安装

部署Django,supervisorctl异常终止