supervisor 安装与配置

随笔记录

注意:
Supervisor只能管理非daemon的进程,也就是说Supervisor不能管理守护进程。否则提示Exited too quickly (process log may have details)异常。

目录

1. 安装

2. 验证:

3. 配置   (生成默认配置文件)

4. 去掉[inet_http_server]的注释,使用web查看进程

5.开启端口

6 启动supervisor  (启动服务端)

7. 客户端命令 控制监控程序:

8.客户端 Web 页面控制监控程序:

9.客户端常用命令如下:

9.1 浏览器输入:

10. 配置文件详细解释

11. 配置项目

11.1单行命令,一般配置文件如下:

12. 修改项目配置文件后,重新加载:

13. 查看supervisord.log 日志

14.web 管理:

15. supervisor 相关命令:

16. 查看supervisor是否启动成功:

17. 将supervisor配置为开机自启动服务 


0. 介绍

需要安装两部分,supervisord(服务端)、supervisorctl(客户端)

1. 安装


# 任意位置均可

[root@bogon supervisor-3.3.3]# pip install supervisor
Collecting supervisor
  Downloading supervisor-4.2.4-py2.py3-none-any.whl (749 kB)
     |████████████████████████████████| 749 kB 1.3 MB/s
Requirement already satisfied: setuptools in /usr/local/lib/python3.6/site-packages/setuptools-33.1.1-py3.6.egg (from supervisor) (33.1.1)
Installing collected packages: supervisor
Successfully installed supervisor-4.2.4
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[root@bogon supervisor-3.3.3]#


或者

[root@localhost Tools]# pip3 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)
[root@localhost Tools]#
[root@localhost Tools]# pip3 install supervisor
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting supervisor
  Downloading https://files.pythonhosted.org/packages/2c/7a/0ad3973941590c040475046fef37a2b08a76691e61aa59540828ee235a6e/supervisor-4.2.5-py2.py3-none-any.whl (319kB)
    100% |████████████████████████████████| 327kB 16kB/s
Requirement already satisfied: setuptools in /usr/lib/python3.6/site-packages (from supervisor)
Installing collected packages: supervisor
Successfully installed supervisor-4.2.5
[root@localhost Tools]#
[root@localhost Tools]#
[root@localhost Tools]# ll
total 0
[root@localhost Tools]#

2. 验证:

[root@bogon supervisor-3.3.3]# supervisorctl --help
supervisorctl -- control applications run by supervisord from the cmd line.

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

Options:
-c/--configuration FILENAME -- configuration file path (searches if not given)
-h/--help -- print usage message and exit
-i/--interactive -- start an interactive shell after executing commands
-s/--serverurl URL -- URL on which supervisord server is listening
     (default "http://localhost:9001").
-u/--username USERNAME -- username to use for authentication with server
-p/--password PASSWORD -- password to use for authentication with server
-r/--history-file -- keep a readline history (if readline is available)

action [arguments] -- see below

Actions are commands like "tail" or "stop".  If -i is specified or no action is
specified on the command line, a "shell" interpreting actions typed
interactively is started.  Use the action "help" to find out about available
actions.


或者

[root@localhost Tools]# supervisorctl --help
supervisorctl -- control applications run by supervisord from the cmd line.

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

Options:
-c/--configuration FILENAME -- configuration file path (searches if not given)
-h/--help -- print usage message and exit
-i/--interactive -- start an interactive shell after executing commands
-s/--serverurl URL -- URL on which supervisord server is listening
     (default "http://localhost:9001").
-u/--username USERNAME -- username to use for authentication with server
-p/--password PASSWORD -- password to use for authentication with server
-r/--history-file -- keep a readline history (if readline is available)

action [arguments] -- see below

Actions are commands like "tail" or "stop".  If -i is specified or no action is
specified on the command line, a "shell" interpreting actions typed
interactively is started.  Use the action "help" to find out about available
actions.

[root@localhost Tools]#


3. 配置   (生成默认配置文件)

1.创建配置
[root@bogon ~]# mkdir -p /etc/supervisor/conf.d
[root@bogon ~]# echo_supervisord_conf > /etc/supervisord.conf
[root@bogon ~]#

2. 创建logs 文件夹
[root@localhost supervisor]# pwd
/etc/supervisor
[root@localhost supervisor]#
[root@localhost supervisor]# mkdir logs
[root@localhost supervisor]# ll
total 0
drwxr-xr-x. 2 root root 189 Dec 12 11:01 conf.d
drwxr-xr-x. 2 root root 206 Dec 12 11:27 logs
[root@localhost supervisor]#



3. 修改配置
  开放配置末尾的include注释,改为:

[root@bogon ~]# vi /etc/supervisord.conf


[include]
files = /etc/supervisor/conf.d/*.ini  ; 打开注释(;),将路径修改为/etc/supervisord/conf.d/

; 这句代码说明它会加载/etc/supervisor/conf.d/ 文件夹中的所有.ini配置文件

4. 去掉[inet_http_server]的注释,使用web查看进程

[root@bogon etc]# pwd
/etc
[root@bogon etc]#
[root@bogon etc]# vi supervisord.conf


去掉注释前:
;[inet_http_server]         ; inet (TCP) server disabled by default
;port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface
;username=user              ; default is no username (open server)
;password=123               ; default is no password (open server)

去掉之后:

[inet_http_server]         ; inet (TCP) server disabled by default
port=192.168.2.247:9001        ; ip_address:port specifier, *:port for all iface
username=root              ; default is no username (open server)
password=root               ; default is no password (open server)

5.开启端口

在访问其web管理界面之前,先需要开启你为他配置的端口,这里我们分配给他的是9001端口,下面是端口管理的一些命令

1. centos7系统iptables是叫firewalld, 使用systemctl status firewalld查看是否启动。如图表示未运行 
Active:inactive(dead)

[root@bogon ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)    
     Docs: man:firewalld(1)
[root@bogon ~]#
如firewalld 已运行,查询是否开启配置端口号:
firewall-cmd --query-port=9001/tcp          //监测端口是否开启
firewall-cmd --add-port=9001/tcp            //开启9001端口
firewall-cmd --remove-port=9001/tcp       //关闭9001端口
sudo firewall-cmd --reload                  //重新加载配置

supervisor安装完成后会生成两个个执行程序:

supervisortd、supervisorctl和一个配置文件echo_supervisord_conf;

supervisortd: supervisor的守护进程服务(用于接收进程管理命令)

supervisorctl: 客户端(用于和守护进程通信,发送管理进程的指令)

echo_supervisord_conf: 生成初始配置文件程序

#在安装完Supervisor后,会生成两个可执行程序:supervisord和supervisorctl。
#其中,supervisord是Supervisor的守护进程程序,用于启动和管理守护进程。
# supervisorctl是Supervisor的命令行界面程序,用于与Supervisor进行交互,例如启动、停止、重启守护进程等操作。


[root@server-247 etc]#
[root@server-247 etc]# which echo_supervisord_conf
/usr/local/bin/echo_supervisord_conf


[root@server-247 etc]# which supervisord
/usr/local/bin/supervisord


[root@server-247 etc]# which supervisorctl
/usr/local/bin/supervisorctl

6 启动supervisor  (启动服务端)

[root@bogon etc]#
[root@bogon etc]# supervisord -c /etc/supervisord.conf
[root@bogon etc]#
[root@bogon etc]#
[root@bogon etc]# ps -ef|grep supervisor
root     228196      1  0 20:19 ?        00:00:00 /usr/bin/python3 /usr/local/bin/supervisord -c /etc/supervisord.conf
root     230216 212473  0 20:23 pts/7    00:00:00 grep --color=auto supervisor
[root@bogon etc]#


[root@localhost etc]# supervisorctl
RiskCop_Init_DynServer           RUNNING   pid 15032, uptime 0:00:41
RiskCop_Init_Server              RUNNING   pid 15033, uptime 0:00:41
RiskCop_Init_Web                 RUNNING   pid 15034, uptime 0:00:41
supervisor>
supervisor> exit       # 退出supervisor交互界面

[root@localhost etc]#

7. 客户端命令 控制监控程序:

[root@localhost etc]# supervisorctl status
RiskCop_Init_DynServer           RUNNING   pid 15032, uptime 0:04:23
RiskCop_Init_Server              RUNNING   pid 15033, uptime 0:04:23
RiskCop_Init_Web                 RUNNING   pid 15034, uptime 0:04:23
[root@localhost etc]#

# 命令 restart program: RiskCop_Init_DynServer  
[root@localhost etc]# supervisorctl restart RiskCop_Init_DynServer
RiskCop_Init_DynServer: stopped
RiskCop_Init_DynServer: started
[root@localhost etc]# 
[root@localhost etc]#


# 关闭某个监控程序    stop program  
[root@localhost ~]#
[root@localhost ~]# supervisorctl stop RiskCop_Init_Server
RiskCop_Init_Server: stopped
[root@localhost ~]#
[root@localhost ~]# supervisorctl
RiskCop_Init_DynServer           STOPPED   Feb 06 03:47 PM
RiskCop_Init_Server              STOPPED   Feb 08 02:00 PM
RiskCop_Init_Web                 RUNNING   pid 15034, uptime 2 days, 2:45:15
supervisor> exit()

[root@localhost ~]#

8.客户端 Web 页面控制监控程序:

9.客户端常用命令如下:



启动客户端supervisorctl,配置完成后重新启动

# 常用命令如下
supervisordctl status 查看进程运行状态
supervisordctl start 进程名 启动进程
supervisordctl stop 进程名 关闭进程
supervisordctl restart 进程名 重启进程
supervisordctl update 重新载入配置文件
supervisordctl shutdown 关闭supervisord
supervisordctl clear 进程名 清空进程日志
supervisordctl 进入到交互模式下。使用help查看所有命令。
start stop restart + all 表示启动,关闭,重启所有进程
9.1 浏览器输入:

http://<IP 地址>:<端口号>  --> username & pwd

即可登录supervisor web管理页面,界面管理进程

10. 配置文件详细解释

; Sample supervisor config file.
 
[unix_http_server]
file=/var/run/supervisor/supervisor.sock   ; socket 路径
 
;chmod=0700                 ; socket 文件的权限
;chown=nobody:nogroup       ; socket 所属用户及组
;username=user              ; 用户名
;password=123               ; 密码
 
;[inet_http_server]         ; 是否启用服务,默认是关闭的(启用的话可以看到supervisor 管理的服务状态)
;port=127.0.0.1:9001        ; 监听的IP及端口
;username=user              ; 用户名
;password=123               ; 密码
 
[supervisord]               ; supervisord 全局配置
logfile=/var/log/supervisor/supervisord.log  ; supervisor 日志路径
logfile_maxbytes=50MB       ; 单个日志文件最大数
logfile_backups=10          ; 保留多少个日志文件(默认10个)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; pid 文件路径
nodaemon=false              ; 启动是否丢到前台,设置为false ,表示以daemon 的方式启动
minfds=1024                 ; 最小文件打开数,对应系统limit.conf 中的nofile ,默认最小为1024,最大为4096
minprocs=200                ; 最小的进程打开数,对应系统的limit.conf 中的nproc,默认为200
;umask=022                  ; (process file creation umask;default 022)
;user=chrism                 ; 启动supervisord 服务的用户,默认为root
;identifier=supervisor       ; (supervisord identifier, default is 'supervisor')
;directory=/tmp              ; 这里的目录指的是服务的工作目录
;nocleanup=true              ; (don't clean up tempfiles at start;default false)
;childlogdir=/tmp            ; ('AUTO' child log dir, default $TEMP)
;environment=KEY=value       ; (key value pairs to add to environment)
;strip_ansi=false            ; (strip ansi escape codes in logs; def. false)
 
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
 
[supervisorctl]
serverurl=unix:///var/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=chris              ; should be same as http_username if set
;password=123                ; should be same as http_password if set
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history  ; use readline history if available
 
; The below sample program section shows all possible program subsection values,
; create one or more 'real' program: sections to be able to control them under
; supervisor.
 
;[program:theprogramname]      ; 定义一个守护进程 ,比如下面的elasticsearch 
;command=/bin/cat              ; 启动程序使用的命令,可以是绝对路径或者相对路径
;process_name=%(program_name)s ; 一个python字符串表达式,用来表示supervisor进程启动的这个的名称,默认值是%(program_name)s
;numprocs=1                    ; Supervisor启动这个程序的多个实例,如果numprocs>1,则process_name的表达式必须包含%(process_num)s,默认是1
;directory=/tmp                ; supervisord在生成子进程的时候会切换到该目录
;umask=022                     ; umask for process (default None)
;priority=999                  ; 权重,可以控制程序启动和关闭时的顺序,权重越低:越早启动,越晚关闭。默认值是999
;autostart=true                ; 如果设置为true,当supervisord启动的时候,进程会自动启动
;autorestart=true              ; 设置为随 supervisord 重启而重启,值可以是false、true、unexpected。false:进程不会自动重启
;startsecs=10                  ; 程序启动后等待多长时间后才认为程序启动成功,默认是10秒
;startretries=3                ; supervisord尝试启动一个程序时尝试的次数。默认是3
;exitcodes=0,2                 ; 一个预期的退出返回码,默认是0,2。
;stopsignal=QUIT               ; 当收到stop请求的时候,发送信号给程序,默认是TERM信号,也可以是 HUP, INT, QUIT, KILL, USR1, or USR2
;stopwaitsecs=10               ; 在操作系统给supervisord发送SIGCHILD信号时等待的时间
;user=chrism                   ; 如果supervisord以root运行,则会使用这个设置用户启动子程序
;redirect_stderr=true          ; 如果设置为true,进程则会把标准错误输出到supervisord后台的标准输出文件描述符
;stdout_logfile=/a/path        ; 把进程的标准输出写入文件中,如果stdout_logfile没有设置或者设置为AUTO,则supervisor会自动选择一个文件位置
;stdout_logfile_maxbytes=1MB   ; 标准输出log文件达到多少后自动进行轮转,单位是KB、MB、GB。如果设置为0则表示不限制日志文件大小
;stdout_logfile_backups=10     ; 标准输出日志轮转备份的数量,默认是10,如果设置为0,则不备份
;stdout_capture_maxbytes=1MB   ; 当进程处于stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB
;stdout_events_enabled=false   ; 如果设置为true,当进程在写它的stderr
;stderr_logfile=/a/path        ; 把进程的错误日志输出一个文件中,除非redirect_stderr参数被设置为true
;stderr_logfile_maxbytes=1MB   ; 错误log文件达到多少后自动进行轮转,单位是KB、MB、GB。如果设置为0则表示不限制日志文件大小
;stderr_logfile_backups=10     ; 错误日志轮转备份的数量,默认是10,如果设置为0,则不备份
;stderr_capture_maxbytes=1MB   ; 当进程处于stderr capture mode模式的时候,写入FIFO队列的最大bytes值,单位可以是KB、MB、GB
;stderr_events_enabled=false   ; 如果设置为true,当进程在写它的stderr到文件描述符的时候,PROCESS_LOG_STDERR事件会被触发
;environment=A=1,B=2           ; 一个k/v对的list列表
;serverurl=AUTO                ; 是否允许子进程和内部的HTTP服务通讯,如果设置为AUTO,supervisor会自动的构造一个url
 
; The below sample eventlistener section shows all possible
; eventlistener subsection values, create one or more 'real'
; eventlistener: sections to be able to handle event notifications
; sent by supervisor.
 #这个地方是自定义一个守护进程
[program:elasticsearch]                       ; 定义一个守护进程 elasticsearch
environment=ES_HOME=/usr/local/elasticsearch  ; 设置ES_HOME 环境变量
user=elk                                      ; 启动elasticsearch 的用户
directory=/usr/local/elasticsearch            ; 进入到这个目录中
command=/usr/local/elasticsearch/bin/elasticsearch ; 执行启动命令
numprocs=1                                    ; Supervisor启动这个程序的多个实例,如果numprocs>1,则process_name的表达式必须包含%(process_num)s,默认是1
autostart=true                                ; 设置为随 supervisord 启动而启动
autorestart=true                              ; 设置为随 supervisord 重启而重启
startretries=3                                ; 设置elasticsearch 重启的重试次数
priority=1                                    ; 权重,可以控制程序启动和关闭时的顺序,权重越低:越早启动,越晚关闭。默认值是999  
 
;[eventlistener:theeventlistenername]
;command=/bin/eventlistener    ; 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)
;events=EVENT                  ; event notif. types to subscribe to (req'd)
;buffer_size=10                ; event buffer queue size (default 10)
;directory=/tmp                ; directory to cwd to before exec (def no cwd)
;umask=022                     ; umask for process (default None)
;priority=-1                   ; the relative start priority (default -1)
;autostart=true                ; start at supervisord start (default: true)
;autorestart=unexpected        ; restart at unexpected quit (default: unexpected)
;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_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        ; # of stderr logfile backups (default 10)
;stderr_events_enabled=false   ; emit events on stderr writes (default false)
;environment=A=1,B=2           ; process environment additions
;serverurl=AUTO                ; override serverurl computation (childutils)
 
; The below sample group section shows all possible group values,
; create one or more 'real' group: sections to create "heterogeneous"
; process groups.
 
;[group:thegroupname]          ; 服务组管理,可以将多个服务名写到这里管理(组名自定义)
;programs=progname1,progname2  ; 上面配置好的服务名,比如elasticsearch,kibana,logstash
;priority=999                  ; the relative start priority (default 999)
 
; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.
 
[include]
files = supervisord.d/*.ini  ;默认放在安装目录的supervisord.d目录下,可以指定一个或多个以.ini结束的配置文件。

11. 配置项目

可以配置多个项目配置文件,如项目过可以 分组管理。

[root@localhost ~]# cd /etc/supervisor/conf.d/
[root@localhost conf.d]# ls
RiskcopInitServer.ini  RiskcopInitWeb.ini
[root@localhost conf.d]#
[root@localhost conf.d]#
[root@localhost conf.d]# ll
total 8
-rw-r--r--. 1 root root 773 Oct 24 20:59 RiskcopInitServer.ini
-rw-r--r--. 1 root root 839 Oct 25 09:35 RiskcopInitWeb.ini
[root@localhost conf.d]#
[root@localhost conf.d]#


[root@localhost conf.d]# cat RiskcopInitWeb.ini
[program:RiskCop_Init_Web] #RiskCop_Init_Web  为程序的名称
command=bash -c "lsof -i :8888 |awk 'NR==2{print$2}' |xargs kill -9; python3 manage.py runserver" #需要执行的命令
directory=/home/TestEnv/riskcop/FunctionalTest/Risk_Init/Init_Sys/ #命令执行的目录
user=root #用户
priority=999
stopsignal=INT
autostart=true #是否自启动
startsecs=10 # #指程序启动时需要程序至少稳定运行x秒才认为程序运行正常,在这x秒中程序状态为正在启动(s)
autorestart=true #是否自动重启
startretries=3 # 重启失败拉起次数
#stderr_logfile=/var/log/RiskcopInit_Server.err.log #错误日志文件
#stdout_logfile=/var/log/RiskcopInit_Web.out.log #输出日志文件

redirect_stderr=true
stderr_logfile_maxbytes=20MB
stderr_logfile_backups = 20
stderr_logfile=/etc/supervisor/logs/RiskcopInitWeb.err.log #错误日志文件
stdout_logfile_maxbytes=20MB
stdout_logfile_backups = 20
stdout_logfile=/etc/supervisor/logs/RiskcopInitWeb.out.log #输出日志文件

#stopasgroup=false
#killasgroup=false

[root@localhost conf.d]# 
[root@localhost conf.d]#
11.1单行命令,一般配置文件如下:
[root@bogon conf.d]# pwd
/etc/supervisor/conf.d
[root@bogon conf.d]#
[root@bogon conf.d]# cat RiskcopInitWeb.ini
[program:RiskCop_Init_Web] #RiskCop_Init_Web  为程序的名称
command=python3 manage.py runserver #需要执行的命令
directory=/home/TestEnv/riskcop/FunctionalTest/Risk_Init/Init_Sys/ #命令执行的目录
user=root #用户
priority=999
stopsignal=INT
autostart=true #是否自启动
startsecs=10 # 指程序启动时需要程序至少稳定运行x秒才认为程序运行正常,在这x秒中程序状态为正在启动(s)
autorestart=true #是否自动重启
startretries=3 # 重启失败拉起次数
#stderr_logfile=/var/log/RiskcopInit_Server.err.log #错误日志文件
#stdout_logfile=/var/log/RiskcopInit_Web.out.log #输出日志文件

redirect_stderr=true
stderr_logfile_maxbytes=20MB
stderr_logfile_backups = 20
stderr_logfile=/etc/supervisor/logs/RiskcopInitWeb.err.log #错误日志文件
stdout_logfile_maxbytes=20MB
stdout_logfile_backups = 20
stdout_logfile=/etc/supervisor/logs/RiskcopInitWeb.out.log #输出日志文件

#stopasgroup=false
#killasgroup=false[

12. 修改项目配置文件后,重新加载:

[root@bogon ~]# supervisorctl reload
Restarted supervisord
[root@bogon ~]#
[root@bogon ~]#

13. 查看supervisord.log 日志

[root@bogon ~]# tail -f /tmp/supervisord.log
2022-10-26 11:03:05,346 INFO Included extra file "/etc/supervisor/conf.d/RiskcopInitServer.ini" during parsing
2022-10-26 11:03:05,346 INFO Included extra file "/etc/supervisor/conf.d/RiskcopInitWeb.ini" during parsing
2022-10-26 11:03:05,348 INFO RPC interface 'supervisor' initialized
2022-10-26 11:03:05,349 INFO RPC interface 'supervisor' initialized
2022-10-26 11:03:05,349 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2022-10-26 11:03:05,349 INFO supervisord started with pid 219289
2022-10-26 11:03:06,217 INFO spawned: 'RiskCop_Init_Server' with pid 222024
2022-10-26 11:03:06,222 INFO spawned: 'RiskCop_Init_Web' with pid 222025
2022-10-26 11:03:16,809 INFO success: RiskCop_Init_Server entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)
2022-10-26 11:03:16,809 INFO success: RiskCop_Init_Web entered RUNNING state, process has stayed up for > than 10 seconds (startsecs)

14.web 管理:

15. supervisor 相关命令:

Supervisor 相关命令
# 重载supervisor
supervisorctl reload

# 更新supervisor
supervisorctl update

# 查看状态
supervisorctl status

# 启动所有/指定的程序进程
supervisorctl start all/<Programname> 
# ProgramName 是只 ini配置文件中的名字,如 Riskcop_Init_Web


16. 查看supervisor是否启动成功:

#查看supervisor是否启动成功:

ps -ef|grep supervisord


[root@server-247 etc]# ps -ef|grep supervisord
root     110023  77963  0 17:48 pts/202  00:00:00 grep --color=auto supervisord
root     133275      1  0 Jun15 ?        00:14:53 /usr/bin/python3 /usr/local/bin/supervisord -c /etc/supervisord.conf
[root@server-247 etc]#

17. 将supervisor配置为开机自启动服务 

# 确认 supervisord & supervisorctl 路径位置

[root@server-247 system]# which supervisord
/usr/local/bin/supervisord

[root@server-247 system]# which supervisorctl
/usr/local/bin/supervisorctl
[root@server-247 system]# 


# 创建 supervisord.serivce
[root@server-247 system]# vi /usr/lib/systemd/system/supervisord.service

[Unit]
Description=Supervisor daemon

[Service]
Type=forking
PIDFile=/var/run/supervisord.pid
ExecStart=/usr/local/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl shutdown
ExecReload=/usr/local/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target


# 修改服务文件权限

[root@server-247 system]# ll |grep supervisord.servi*
-rw-r--r--  1 root root  322 Jul 17 17:55 supervisord.service
[root@server-247 system]#
[root@server-247 system]# chmod 766 /usr/lib/systemd/system/supervisord.service
[root@server-247 system]#
[root@server-247 system]# ll |grep supervisord.servi*
-rwxrw-rw-  1 root root  322 Jul 17 17:55 supervisord.service
[root@server-247 system]#

# 测试自启动

[root@localhost /]# systemctl enable supervisord
Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.
[root@localhost /]#
[root@localhost /]#
[root@localhost /]# ps -ef|grep supervisor*
root      75191      1  0 13:35 ?        00:00:00 /usr/bin/python3 /usr/local/bin/supervisord -c /etc/supervisord.conf
root      87592  80105  0 14:08 pts/6    00:00:00 grep --color=auto supervisor*
[root@localhost /]#
[root@localhost /]#
[root@localhost /]# systemctl is-enabled supervisord
enabled
[root@localhost /]#

[root@localhost /]# ps -ef|grep super*
root      75191      1  0 13:35 ?        00:00:00 /usr/bin/python3 /usr/local/bin/supervisord -c /etc/supervisord.conf
root      88491  80105  0 14:11 pts/6    00:00:00 grep --color=auto super*
[root@localhost /]#
[root@localhost /]#
[root@localhost /]# kill -9 75191                          # 杀死 supervisor 程序
[root@localhost /]#
[root@localhost /]# ps -ef|grep super*
root      88604  80105  0 14:11 pts/6    00:00:00 grep --color=auto super*
[root@localhost /]#
[root@localhost /]#
[root@localhost /]#
[root@localhost /]#
[root@localhost /]# systemctl start supervisord.service   # 启动,不能自动退出,Ctrl+C 退出

^C
[root@localhost /]#
[root@localhost /]# ps -ef|grep super*                    # 查询supervisor 程序已启动
root      88822      1  0 14:11 ?        00:00:00 /usr/bin/python3 /usr/local/bin/supervisord -c /etc/supervisord.conf
root      89337  80105  0 14:12 pts/6    00:00:00 grep --color=auto super*
[root@localhost /]#

芝麻馅汤圆儿
关注 关注
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
2024年Linux最新Linux进程管理工具 Supervisor详解_supervisor core signal
ZZdjajf13131的博客
04-30 514
Supervisor只能管理非dameon进程,像默认的redis为前台运行、Tomcat其实是 startup.sh shutdown.sh来调用catalina.sh进行后台运行的,默认catalina.sh为前台运行的程序,不能管理像Nginx一样的非dameon进程。2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?7、Tomcat和Resin有什么区别,工作中你怎么选择?
supervisor安装及使用教程
最新发布
sinat_21250935的博客
01-26 427
linux中,我们需要一个监控软件来监控我们的程序是否在正常运行,而常用的一般都是supervisor
Linux下进程守护Supervisor搭建
平凡老者
05-08 2614
Supervisor是在linux上的进程管理员,是一个管理工具。当进程停止的时候Supervisor能够自动启动它,可以运行在各种类unix的机器上,supervisor是使用python开发的一套通用的进程管理工具,能够把普通脚本、命令行进程变成后台的daemon,并监控状态,实现自动重启,并提供可视化管理界面。
supervisor安装和使用,超级详细,开机自启动,以及其它的注意细节
weixin_40293999的博客
03-17 3228
所以 supervisor 是用来管理常驻进程合适,比如 nginx服务, mysql服务,web服务等等。但是,这里我其实犯了一个错误,是因为 /root/test/test.py print了一句话就退出了。这里很重要,php管理拓展, nginx 管理web站点,都是这种分离的文件方式,各走各的,不一坨在一起,挺好的。后面的web 管理界面, 之前以为这一段是没用的,因为没有服务器会给你权限,让你界面操作,其实也挺好的。但也没有那么柔性, 我理解是可以吧过程中的任务,执行完在重启。
Supervisor 之部署
菜鸟厚非
04-07 1458
概念 supervisor安装的软件的名称。 supervisord:装好supervisor后,supervisord用于启动supervisor服务。 supervisorctl:用于管理supervisor配置文件中program和supervisor服务本身。 产生配置文件 echo_supervisord_conf > /etc/supervisor/supervisord.conf 子进程 指定子进程目录,即每个守护进程,的启动文件。 supervisor服务启动脚本
centos 安装supervisor 详解
王安的博客
06-29 1225
执行以下命令二 配置supervisor1.在文件结尾[include]节点处把;改为files = conf.d/*.confa.在/usr/lib/systemd/system/目录下创建文件supervisord.service执行以下命令:d.验证是否为开机启动:#提示 enabled 表示成功。
supervisord.conf配置详解
第三眼的思绪
10-20 4697
这里仅作关键配置详细描述,全量配置详细描述参考官网配置。 [unix_http_server] ; 如果配置文件没有[unix_http_server]部分,则不会启动UNIX域套接字HTTP服务器 file=/tmp/supervisor.sock ; 一个指向UNIX域套接字的路径,supervisor将在该套接字上侦听HTTP/XML-RPC请求 ;chmod=0700 ; 在启动时将UNIX域套接字的UNIX权限模式位更改为此值 (默认 0700
supervisor安装与配置
04-19
Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制), 它允许用户去监控和控制在类UNIX系统的进程. 它的目标与launchd, daemontools和runit有些相似, 但是与它们不一样的是, 它...
详解Supervisor安装与配置Linux/Unix进程管理工具)
09-15
首先,安装Supervisor之前,确保系统已经安装了Python 2.4以上的版本。在CentOS7环境下,可以按照以下步骤进行安装: 1. 安装Python包管理工具`easy_install`,它是`setuptools`的一部分,可以通过运行以下命令来...
CentOS7下Supervisor安装与配置.pdf
04-23
一、 简介 二、 安装依赖 三、 安装Supervisor 四、 配置Supervisor 五、 Supervisor相关操作 六、 设置Supervisor为服务 七、 配置要管理的程序 八、 运行效果 九、 故障排除
supervisor 安装与配置.zip
08-15
Ubuntu 16系统下局域网环境下supervisor 安装包,按博客步骤完成安装与配置
supervisord.conf配置文档
10-25
可供初学者在学习过程中参考。少走几次度娘就能配置好supervisor
supervisor简介
weixin_64051447的博客
06-20 351
supervisor是一个用python语言编写的进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。当一个进程意外被杀死,supervisor监听到进程死后,可以很方便的让进程自动恢复,不再需要程序员或系统管理员自己编写代码来控制。
Supervisord配置信息详解
技术人集结地
03-15 3538
通过supervisor可以很好的对我们的Linux上面的应用进行管理,这里是一些我们在对supervisor.conf文件进行配置的字段含义,这里没有将全部配置项都列举进来,只是将一些常用的选项的含义进行的解释 //设置HTTP服务器监听的UNIX domain socket [unix_http_server] //指向UNIX domain socket的位置,supervisorctl...
重启supervisor服务及 查看、启动、停止、重启supervisor进程
热门推荐
yzlaitouzi的博客
09-11 4万+
一、重启supervisor服务 前提:监控报警发现supervisor服务down了 or 检查服务发现supervisor 服务down了 执行sudo supervisorctl命令,输入密码后发现执行失败,说明supervisor服务挂了 解决办法: 1、首先找到supervisor安装的目录,命令为 whereis supervisor 2、找到对应的supervisor配置文件路径,见截图 3、启动supervisor服务,命令为 sudo supervisord -c /etc/super
守护进程Supervisor安装详解
weixin_45487630的博客
02-07 329
laravel 配合supervisor做队列监控
离线方式安装supervisor
qq_31851107的博客
08-09 2937
离线安装supervisor
Supervisor安装
yaoyaobird11的博客
07-13 330
单机的airflow scheduler很容易挂掉,出现服务故障,所以使用supervisor监控进程,实现服务故障发生时,自动重启服务。 Supervisor安装 1 使用pip安装 安装supervisor 安装后的执行文件会默认安装在pip的执行文件目录。 进入这个目录,会看到新生成的三个文件, 2 生成配置文件 ./echo_supervisord_conf > supervisored.conf 设置配置文件 mkdir -p /etc/supe.

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • supervisor 安装与配置 7421
  • Centos7安装Python2.7 4927
  • 修改mysql字段的方法 3770
  • Tmux 使用教程 3760
  • Socket 修改缓存大小 3663

最新评论

  • Centos7安装Python2.7

    _Libbytian: 你这个python版本还是2.7.5 没有部署成功

  • drawio 流程图以图片保存

    m0_64892250: 复制为图像的图片是黑色的怎么办

  • docker 部署kafka

    萬萬萬v7: 太详细了

  • Xmind 转 Excel or CSV 格式的TestCase

    芝麻馅汤圆儿: 可以考虑更换 Xmind 版本,遇到过高版本乱码。我的Xmind 8

  • Xmind 转 Excel or CSV 格式的TestCase

    啥名也取不上: 导出的文档乱码怎么办呢

大家在看

  • 【花雕学编程】Arduino FOC 之霍尔传感器校准
  • Visual Studio 2010 旗舰版的 VB.NET音频播放器程序代码
  • 【花雕学编程】Arduino FOC 之简单的AS5600角度读取
  • Visual Studio 2010旗舰版的 VB.NET记事本程序代码
  • 【花雕学编程】Arduino FOC 之光栅编码器校准

最新文章

  • RDP方式连接服务器上传文件方法
  • vivado license
  • Pycharm 编辑器编码格式设置
2024年18篇
2023年40篇
2022年7篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

聚圣源木材加工厂起名大全两字品牌起名推荐姓名公司起名公司起名查吉凶大汉帝国给牛幼儿起名字卤肉加盟店天才作坊元气骑士破解版数组定义做家务三生三世十里桃花全集百度云起微信名字 女孩子民国是哪一年开始沙发是什么意思黑苹果系统下载2021新公司起名大全集爆笑小说季姓女孩起名字怎么判断自己得了痔疮中国马其顿美容会所起什么名字魔兽世界盗贼名字包贝尔陈升和刘若英吃鸡起名双子座今日运势彭字起名男孩凌晨出生的女孩起什么名字好起一个商标名是淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化