Supervisor的安装与使用入门
Supervisor是一个进程管理工具,官方的说法 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor
这个工具主要就两个命令:
- supervisord : supervisor的服务器端部分,启动supervisor就是运行这个命令
- supervisorctl:启动supervisor的命令行窗口
一、Supervisor安装
最新supervisor的推荐安装如下(开始):
# yum install epel-release
# yum install -y supervisor
# systemctl enable supervisord # 开机自启动
# systemctl start supervisord # 启动supervisord服务
# systemctl status supervisord # 查看supervisord服务状态
# ps -ef|grep supervisord # 查看是否存在supervisord进程
最新supervisor的安装配置文件就是在/etc/supervisor.conf,并且其他配置都放在/etc/supervisor.d/下,所以推荐使用这个安装。
最新supervisor的推荐安装(结束):
1、安装Supervisor
pip install supervisor
2、生成配置文件(后面指定生成的位置)
echo_supervisord_conf > /etc/supervisord.conf
我们把上面这部分配置保存到 /etc/supervisord.conf(或其他任意有权限访问的文件),然后启动 supervisord(通过 -c 选项指定配置文件路径,如果不指定会按照这个顺序查找配置文件:
$CWD/supervisord.conf,
$CWD/etc/supervisord.conf,
/etc/supervisord.conf
3、启动
supervisord -c /etc/supervisord.conf
4、program 配置
上面我们已经把 supervisrod 运行起来了,现在可以添加我们要管理的进程的配置文件。可以把所有配置项都写到 supervisord.conf 文件里,但并不推荐这样做,而是通过 include 的方式把不同的程序(组)写到不同的配置文件里。
为了举例,我们新建一个目录 /etc/supervisor/ 用于存放这些配置文件,相应的,把 /etc/supervisord.conf 里 include 部分的的配置修改一下:
[include] files = /etc/supervisor/*.conf
假设有个用 Python程序为例子。所以直接在命令行启动的方式可能是这样的:
python /python/test.py
现在编写一份配置文件来管理这个进程:(下面的test表示一个进程名称,所以不能重复,下面配置中,蓝灰色的是必须需配置的)
[program:test]
directory = /python ; 程序的启动目录
command = python /python/test.py ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = nobody ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数 ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/logs/usercenter_stdout.log
; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere
5、使用 supervisorctl
Supervisorctl 是 supervisord 的一个命令行客户端工具,启动时需要指定与 supervisord 使用同一份配置文件,否则与 supervisord 一样按照顺序查找配置文件。
supervisorctl -c /etc/supervisord.conf
上面这个命令会进入 supervisorctl 的 shell 界面,然后可以执行不同的命令了:
status # 查看程序状态
stop test # 关闭 usercenter 程序
start test # 启动 usercenter 程序
restart test # 重启 usercenter 程序
reread # 读取有更新(增加)的配置文件,不会启动新添加的程序
update # 重启配置文件修改过的程序
上面这些命令都有相应的输出,除了进入 supervisorctl 的 shell 界面,也可以直接在 bash 终端运行:
$ supervisorctl status
$ supervisorctl stop test
$ supervisorctl start test
$ supervisorctl restart test
$ supervisorctl reread
$ supervisorctl update
二、Supervisor使用
1、添加好配置文件后
2、更新新的配置到supervisord
supervisorctl update
3、重新启动配置中的所有程序
supervisorctl reload
4、启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
5、查看正在守候的进程
supervisorctl
6、停止某一进程 (program_name=你配置中写的程序名称)
pervisorctl stop program_name
7、重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl restart program_name
8、停止全部进程
supervisorctl stop all
快速生成表格
网页扫描二维码库:Html5-Qrcode,官网地址:https://scanapp.org/html5-qrcode-docs/
在前面我们学习了Redis的RDB的持久化,我们都知道RDB持久化会根据配置中的save对应的键和时间的触发机制来进行快照。但是不管怎么样,两次快照之间如果存在系统异常崩溃或者服务器宕机等情况,RDB就不能保证数据的强一致性了。这时候Redis提供了另外一种持久化方法AOF,AOF(Append Only File)记录Redis写入命令追加到日志文件。每写入一个命令都会被追加到文件中,所以AOF的数据一致性高于RDB。但是在默认情况下AOF是没有开启的,所以本文我们将介绍AOF的配置参数;
《向天再借五百年》是韩磊演唱的歌曲、由樊孝斌作词,张宏光作曲,该曲收录于韩磊2004年12月28日发行的专辑《帝王之声》中。该曲是电视剧《康熙王朝》主题曲。
在使用Python进行开发时,pip作为Python的包管理工具,是我们安装和管理Python库的重要工具。然而,有时候由于操作失误或其他原因,我们可能会不小心卸载了pip。这时,如何手动重新安装pip就显得尤为重要。本文将介绍两种手动安装pip的方法,帮助你快速恢复pip功能。
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。