使用supervisor管理你的程序

简介: Supervisor是python开发的一种进程管理工具。不仅可以监控我们的程序还可以自动重启我们的程序,非常好用。
WangScaler: 一个用心创作的作者。

声明:才疏学浅,如有错误,恳请指正。

Supervisor是python开发的一种进程管理工具。不仅可以监控我们的程序还可以自动重启我们的程序,非常好用。我们的python程序、springboot程序都可以交给Supervisor来管理,那么接下来一块看看supervisor是如何安装使用的吧!

1、安装

yum install supervisor

简简单单的就用yum安装上我们的supervisor。

2、修改配置文件

  • 启动web界面并配置密码

    [inet_http_server]         ; inet (TCP) server disabled by default
    port=0.0.0.0:9001        ; (ip_address:port specifier, *:port for all iface)
    username=WangScaler              ; (default is no username (open server))
    password=WangScaler@juejin.com        ; (default is no password (open server))

    切记,如果开在公网一定配置上用户名和密码,安全第一。

  • 给命令加密

    [supervisorctl]
    serverurl=unix:///run/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket
    ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
    username=WangScaler              ; should be same as http_username if set
    password=123                ; should be same as http_password if set
    ;prompt=WangScaler@juejin.com          ; cmd line prompt (default "supervisor")
    ;history_file=~/.sc_history  ; use readline history if available

    如果操作的用户是你自己或者是你信任的用户,其实完全没必要,每次使用命令都得输入密码,反而麻烦。怎么说呢都是为了安全。

  • 配置应用自启

    ;[program:theprogramname]
    ;command=/bin/cat              ; the program (relative uses PATH, can take args)
    ;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
    ;numprocs=1                    ; number of processes copies to start (def 1)
    ;directory=/tmp                ; directory to cwd to before exec (def no cwd)
    ;umask=022                     ; umask for process (default None)
    ;priority=999                  ; the relative start priority (default 999)
    ;autostart=true                ; start at supervisord start (default: true)
    ;autorestart=true              ; retstart at unexpected quit (default: true)
    ;startsecs=10                  ; number of secs prog must stay running (def. 1)
    ;startretries=3                ; max # of serial start failures (default 3)
    ;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
    ;stopsignal=QUIT               ; signal used to kill process (default TERM)
    ;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
    ;user=chrism                   ; setuid to this UNIX account to run the program
    ;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
    ;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
    ;stdout_logfile_maxbytes=1MB   ; 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=/a/path        ; stderr log path, NONE for none; default AUTO
    ;stderr_logfile_maxbytes=1MB   ; 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)
    ;environment=A=1,B=2           ; process environment additions (def no adds)
    ;serverurl=AUTO                ; override serverurl computation (childutils)

    可以在这里配置上启动程序的命令,比如command=python3 /usr/local/wangscaler.py,还可以通过其他的方法配置自启。接下来教你怎么使用配置文件,管理进程。

3、启动supervisor并配置自启

基本操作,没啥好说的。

systemctl restart supervisord
systemctl enable supervisord

4、使用配置文件管理python项目

  • 1、 首先在/etc/supervisor.d下创建文件wangscaler.ini
  • 2、编辑wangscaler.ini,示例如下:

    ;/etc/supervisord.d/wangscaler.ini
    ​
    [program:wangscaler]
    ​
    command     =sudo /root/.virtualenvs/grpc/bin/python3.6 /usr/local/wangscaler.py
    directory   = /usr/local/
    user        = root
    startsecs   = 3
    autostart   = true
    ​
    redirect_stderr         = true
    stdout_logfile_maxbytes = 50MB
    stdout_logfile_backups  = 10
    stdout_logfile          = /usr/local/log/app.log

    内容和配置文件差不多,仿照着写即可。必须注意的是,如果上述的/usr/local/log/app.log文件不存在,那么你的项目是启动不起来的。如果是springboot项目,只需要将command =sudo /root/.virtualenvs/grpc/bin/python3.6 /usr/local/wangscaler.py修改为command =java -jar /usr/local/wangscaler.jar即可。

5、启动上述的程序

通过supervisorctl reload重新加载配置文件,切记不要使用supervisorctl update,因为这个命令会使所有的程序重启。导致你原先启动的程序,再次启动,从而影响你的业务。

6、修改了代码,重启

supervisorctl restart wangscaler

你的program的名字是啥你就写啥,我这里使wangscaler。

7、命令参考

supervisorctl status:查看所有进程的状态
supervisorctl stop myproject:停止myproject
supervisorctl start myproject:启动myproject
supervisorctl restart myproject: 重启myproject
supervisorctl update :配置文件修改后可以使用该命令加载新的配置
supervisorctl reload: 重新启动配置中的所有程序
来都来了,点个赞再走呗!

关注WangScaler,祝你升职、加薪、不提桶!

目录
相关文章
|
3月前
|
网络协议 Unix 应用服务中间件
Supervisor安装与配置
Supervisor安装与配置
|
Linux Python 监控
Supervisor 、Supervisord-Monitor 的web统一管理安装、配置、使用
Supervisor 安装、配置、使用、web管理,linux下进程管理系统、监听、重启、停止进程。
9446 0
|
3月前
|
监控 JavaScript Shell
如何安装和管理 Supervisor
如何安装和管理 Supervisor
71 0
|
4月前
|
Ubuntu Unix Linux
如何使用 Supervisor 管理你的进程
**Supervisor** 是一款Python编写的进程管理工具,用于类Unix系统,确保应用服务持续运行。常用命令包括:`reload`(重新加载配置)、`status`(查看进程状态)、`shutdown`(关闭所有进程)、`start`和`stop`(控制单个进程)。在CentOS上安装Supervisor用`yum install -y supervisor`,配置文件通常在`/etc/supervisord.conf`。
72 0
|
6月前
|
监控 应用服务中间件 nginx
Supervisor快速入门 | 使用Supervisor守护Nginx进程
Supervisor快速入门 | 使用Supervisor守护Nginx进程
200 0
supervisor 安装、配置、使用
supervisor 安装、配置、使用
744 0
|
缓存 监控 NoSQL
Python编程:supervisor模块管理进程实例
Python编程:supervisor模块管理进程实例
855 0
Python编程:supervisor模块管理进程实例
|
监控 网络协议 安全
Supervisor-让你的程序监控管理更得心应手
Supervisor-让你的程序监控管理更得心应手
687 0
Supervisor-让你的程序监控管理更得心应手
|
Java Python
Supervisor 进程守护工具
说明 公司Linux服务器无法连接外网,只能下载安装包上传到服务器进行离线安装 Python版本: Python-2.7.5 Supervisor版本: supervisor-3.1.3 setuptools版本: setuptools-2.0 meld3版本: meld3-1.0.2 Supervisor简介 Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
|
Shell Linux Python
supervisor 管理进程
        Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。
1160 0