对于有些进程,我们不希望它出现意外的崩溃,如果万一崩溃了,也希望可以自动能够重启,而不是手动去启动他们,万一半夜崩了,那不得半夜起来重启服务?那滋味一定很酸爽。很典型的一种就是web服务,按照道理来讲,服务器不宕机,应该是需要一直运行下去的。可是天意不可测,万一哪天突然崩了呢? 所以我们需要一种机制,确保web服务崩了依然可以自启。今天要介绍的supervisor就是作为一种进程守护,来监听web服务,一旦web挂掉,supervisor会让其自启。确保web服务器不会处于挂掉状态
安装:
本人使用centos, 以下为该系统下安装步骤及说明:
1. yum install supervisor # 使用yum安装supervisor
2. systemctl enable supervisord.service # 设置开机自启
3. 生成配置文件:
通常安装好supervisor后会字典一个配置文件,在/etc/supervisord.conf, 我们可以直接
编辑这个文件, 或使用命令再重新生成个配置文件来编辑, 没有区别
echo_supervisord_conf > /etc/目录/supervisord.conf
以上命令可在/etc/目录/下创建个supervisord.conf文件
4. 编辑配置文件:
打开新创建的supervisord.conf文件,最后添加以下代码(参数讲解见第5步):
5. 配置文件中的参数讲解:
command='' # 启动命令,与手动在命令行启动的命令是一样的,注意这里home不可用~代替
directory='' # 程序的启动目录
使用:
1. 启动
supervisord # 使用默认的配置文件启动, 即/etc/supervisord.conf
supervisord -c /etc/supervisord.conf # 指定配置文件启动, 推荐使用该方法
supervisord -u user # 使用 user 用户启动supervisord
2. 查看supervisord是否在运行
ps -ef | grep supervisord
3. 进程的控制
supervisord启动成功后,可以通过supervisorctl客户端控制进程,启动停止重启. 运行supervisorctl命令,不加参数,
会进入supervisor客户端的交互终端, 并会列出当前所管理的所有进程.
进入supervisorctl客户端后有哪些操作命令, 可直接输入help来查看每一项
再使用help 命令 可查看该命令的详细使用; 比如 help start
补充:
supervisord还提供有web页面的管理功能, 但配置文件中默认是没有开启的,需要修改配置文件, 打开http访问权限
并配置访问的信息, 即可使用配置好的用户名和密码来访问web页面.