正在阅读:
- 首页 » 开发运维 » 系统环境 » supervisor部署及实现进程自动恢复
supervisor部署及实现进程自动恢复
介绍
supervisor 是基于python 开发的一个linux/unix进程管理工具,可以很方便地实现进程的监听、启动、停止和重启操作。尤其是针对一些意外中断的进程,利用supervisor使其实现自动重启变得极为方便。
1. 安装
1.1. python 环境安装
supervisor 是基于python 开发,需要提前安装python 环境,不过现在的centos 7 都是自带安装了python2.x
查看python 版本
python --version
1.2. 安装pip 工具包
安装pip
yum install python-pip
pip --version
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
升级到最高版本
pip install --upgrade pip
安装一个包试试
pip install paramiko
1.3. 安装supervisor
pip install supervisor DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality. Collecting supervisor Downloading supervisor-4.2.1-py2.py3-none-any.whl (738 kB) |████████████████████████████████| 738 kB 350 kB/s Installing collected packages: supervisor Successfully installed supervisor-4.2.1
1.4. 配置 supervisor
supervisor 是c/s程序,server 端即supervisord,客户端即supervisorctl 和我们需要管理的应用程序。
创建配置文件路径:
mkdir -p /etc/supervisor
生成配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf
vim supervisord.conf
在文件最后开启如下配置,即表示supervisord 会监控此文件路径下所有的.ini文件,每一个.ini文件代表着一个supervisorctl 客户端进程
[include]
files = /etc/supervisor/config.d/*.ini
配置一个客户端进程
mkdir -p /etc/supervisor/config.d
vim /etc/supervisor/config.d/hello.ini
做如下配置,分别表示需要被管理的进程和日志输出路径
#项目名称
[program:hello]#项目路径directory=/root
#脚本指令
command=/root/hello.sh stderr_logfile=/tmp/test_stderr.log stdout_logfile=/tmp/test_stdout.log
1.5. 测试 supervisor
建一个测试脚本
vim /root/hello.sh
#!/usr/bin/bash
while true;do
echo "hello" `date`
sleep 2s
done
添加执行权限 chmod 755 /root/hello.sh
启动 supervisor server端
supervisord -c /etc/supervisor/supervisord.conf
查看日志
ll /tmp/ total 12 -rw-------. 1 root root 0 Oct 10 13:50 hello-stderr---supervisor-kqR6Jr.log -rw-------. 1 root root 1120 Oct 10 13:51 hello-stdout---supervisor-RZ9Onz.log drwxr-xr-x. 2 root root 69 Oct 9 15:26 hsperfdata_root -rw-rw-r--. 1 root root 1384 Oct 10 13:50 supervisord.log -rw-r--r--. 1 root root 5 Oct 10 13:50 supervisord.pid srwx------. 1 root root 0 Oct 10 13:50 supervisor.sock
1.6.测试
通过 ps -ef|grep "hello.sh" 查看到进程号,然后kill 掉该进程,确认此进程是否会自动重启
1.7. 开启 supervisor webUI
vim /etc/supervisor/supervisord.conf
重启
supervisorctl reload
登录web ,输入账号密码
转载请注明文本地址:https://www.bemhome.com/post/33.html