supervisor是py2下的一个web管理工具html
python2版本:
使用py2的pip工具进行安装
pip install supervisorpython
安装完成以后多了三个命令
supervisord
supervisorctl
echo_supervisord_confios
在centos下默认在etc下没有生成supervisor的配置文件目录web
mkdir /etc/supervisor/supervisord.d/ -p echo_supervisord_conf > /etc/supervisord.conf 生成supervisor的主配置文件 /usr/bin/supervisord -c /etc/supervisord.conf 按照指定的配置文件启动进程
根据需求修改supervisord.conf最后的includeshell
经常使用命令 supervisorctl 进入交互界面 supervisorctl status 查看被监控进程状态 supervisorctl stop all 关闭被监控的进程 supervisorctl start all 启动被监控的进程 supervisorctl start program-name 其中program-name为配置文件[program:xx]中的xx supervisorctl stop program-name 其中program-name为配置文件[program:xx]中的xx supervisorctl restart all 重启被监控的进程 supervisorctl reatart program-name 重启某一进程,program-name为[program:xx]中的xx supervisorctl shutdown 关闭supervisord服务端 supervisorctl reload 从新加载配置文件
将supervisor加入到开机自启动服务中vim
1 利用/etc/rc.local echo "/usr/bin/supervisord -c /etc/supervisord.conf" >> /etc/rc.local /etc/rc.local是/etc/rc.d/rc.local的软链接 若是开机启动不生效,则首先须要检查下/etc/rc.d/rc.local是否具备可执行权限 2 加入systemctl管理 编辑配置文件 vim /lib/systemd/system/supervisor.service [Unit] Description=supervisor After=network.target [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf #指明启动中止重载的命令 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target 上述文件编写后,执行以下命令便可: systemctl enable supervisor.service 加入开机自启动服务 systemctl daemon-reload 从新载入systemd,扫描新的或有变更的单元(必要步骤) chmod 766 /lib/systemd/system/supervisor.service 修改文件权限
一个Linux/Unix系统上的进程监控工具
一个Python开发的通用的进程管理程序
能够管理和监控Linux上面的进程
能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启
不过同daemontools同样,它不能监控daemon进程centos
- supervisor则能够完美的解决这些问题。supervisor管理进程,就是经过fork/exec的方式把这些被管理的进程,看成supervisor的子进程来启动。这样的话,咱们只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去就OK了
- 被管理进程做为supervisor的子进程,当子进程挂掉的时候,父进程能够准确获取子进程挂掉的信息的,因此固然也就能够对挂掉的子进程进行自动重启,固然重启仍是不重启,也要看你的配置文件里面有木有设置autostart=true了
- supervisor经过INI格式配置文件进行配置
supervisordsocket
主进程,负责管理进程的server,它会根据配置文件建立指定数量的应用程序的子进程,管理子进程的整个生命周期,对crash的进程重启,对进程变化发送事件通知等。同时内置web server和XML-RPC Interface,轻松实现进程管理。。该服务的配置文件在/etc/supervisor/supervisord.conf。工具
supervisorctl命令行
客户端的命令行工具,提供一个相似shell的操做接口,经过它你能够链接到不一样的supervisord进程上来管理它们各自的子程序,命令经过UNIX socket或者TCP来和服务通信。用户经过命令行发送消息给supervisord,能够查看进程状态,加载配置文件,启停进程,查看进程标准输出和错误输出,远程操做等。服务端也能够要求客户端提供身份验证以后才能进行操做。
Web Server
superviosr提供了web server功能,可经过web控制进程(须要设置[inethttpserver]配置项)
XML-R- #supervisor
一个Linux/Unix系统上的进程监控工具
一个Python开发的通用的进程管理程序
能够管理和监控Linux上面的进程
能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启
不过同daemontools同样,它不能监控daemon进程
- supervisor是python编写的,能够用easy_install、pip均可以安装
yum install python-setuptools
easy_install pip
pip install supervisor- 配置
在supervisord.conf中设置经过web能够查看管理的进程,加入如下代码(默认即有,取消注释便可)
[inet_http_server]
port=9001
username=user
password=123- 启动
supervisord -c /etc/supervisord.conf
或者 systemctl start supervisord.service- 查看是否处于监听状态
lsof -i:9- #supervisor
一个Linux/Unix系统上的进程监控工具
一个Python开发的通用的进程管理程序
能够管理和监控Linux上面的进程
能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启
不过同daemontools同样,它不能监控daemon进程
查看supervisorctl支持的命令
supervisorctl help
查看当前运行的进程列表
原文地址
http://www.javashuo.com/article/p-cwmkvehr-e.html
看是否处于监听状态
lsof -i:9001