安装、配置Supervisor

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoxiangzi520/article/details/84754756

      Supervisor是一个c/s系统,被用来在类Unix系统中监控进程状态。Supervisor使用python开发。 服务端进程为supervisord,主要负责启动自身及其监控的子进程,响应客户端命令,重启异常退出的子进程,记录子进程stdout和stderr输出,生成和处理子进程生命周期中的事件。其配置文件一般为/etc/supervisord.conf,可以在配置文件中配置相关参数,包括supervisord自身的状态,其管理的各个子进程的相关属性等。Supervisor的客户端为supervisorctl,它提供了一个类shell的接口(即命令行)来操作supervisord服务端。通过supervisorctl,可以连接到supervisord服务进程,获得服务进程监控的子进程状态,启动和停止子进程,获得正在运行的进程列表。客户端通过Unix域套接字或者TCP套接字与服务进程进行通信,服务器端具有身份凭证认证机制,可以有效提升安全性。当客户端和服务端位于同一台机器上时,客户端与服务器共用同一个配置文件/etc/supervisord.conf,通过不同标签来区分两者的配置。

1.安装

   下载压缩包源码安装

cd  /usr/local/src

wget https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3.3.1.tar.gz

tar -zxvf supervisor-3.3.1.tar.gz

cd supervisor-3.3.1

python setup.py install

     Supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl以及echo_supervisord_conf,它们分别是Supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)以及生成初始配置文件程序。

2.生成配置文件

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf

    创建项目的配置文件目录:

cd  /etc/supervisor

mkdir conf.d

    修改配置文件supervisord.conf中项目配置文件的存放位置为conf.d目录下以后缀.conf命名的所有配置文件。

vim /etc/supervisor/supervisord.conf

    具体内容为:(注意去掉include前的分号)

[include]
files = conf.d/*.conf

3.创建项目配置文件

cd  /etc/supervisor/conf.d

vim awesome.conf

   加入如下配置:

    此处配置/usr/local/bin/python3为python3的命令所在位置。command:进程要执行的命令;stdout_logfile:日志路径

4.启动

   按指定配置文件启动服务端进程:

/usr/bin/python2 /usr/bin/supervisord -c /etc/supervisor/supervisord.conf

   重新加载配置文件:

sudo supervisorctl reload
ps -ef|grep awesome   查看项目awesome进程有没有成功启动,若没有则执行:sudo supervisorctl start awesome

sudo supervisorctl status 查看进程状态

5.常见错误

  (1) [app.py is not executable]没有权限 。

       解决:chmod a+x  /srv/awesome/www/app.py

(2)  [root@localhost www]#  sudo supervisord -c /etc/supervisor/supervisord.conf
Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
For help, use /bin/supervisord -h

      解决:sudo unlink /tmp/supervisor.sock

  

猜你喜欢

转载自blog.csdn.net/xiaoxiangzi520/article/details/84754756