1. 程式人生 > >程序管理利器Supervisor--centos7下安裝與配置

程序管理利器Supervisor--centos7下安裝與配置

目錄

  • 概述
  • 環境準備
  • 檢查python環境
  • 線上安裝
  • 配置Supervisor
  • 啟動並驗證
  • 運維命令

概述

    瞭解supervisor基本概念,請點選檢視程序管理利器Supervisor--入門簡介

    Supervisor的安裝可以有線上安裝和離線安裝兩種方式。安裝方式取決於伺服器是否聯網,聯網的話可採用線上安裝,否則採用離線安裝。

本文僅介紹線上安裝方式

轉帖請註明原貼地址: https://my.oschina.net/u/2342969/blog/2986173

環境準備

  1. 最小化安裝centos7
  2. Supervisor3.3.4
  3. Python 2.4及以上, 注意:不能是python3

檢查python環境

    一般centos7 自帶python,通過 python -V 命令檢視

執行命令結果如圖:如果滿足環境準備的python版本,則跳過此步,直接進行下一章安裝

安裝python2.7.5

#cd /opt/packages
#wget https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
#tar -zxvf Python-2.7.5.tgz
#cd Python-2.7.5
#./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
#make && sudo make altinstall

線上安裝

    線上安裝又有兩種安裝方式:

  • 使用Setuptools
  • 使用python安裝

以上方式均需要伺服器可以聯網

使用Setuptools

    安裝setuptools

#cd /opt/packages
#wget https://files.pythonhosted.org/packages/6e/9c/6a003320b00ef237f94aa74e4ad66c57a7618f6c79d67527136e2544b728/setuptools-40.4.3.zip
#unzip setuptools-40.4.3.zip
#cd setuptools-40.4.3
#python setup.py install

    安裝supervisor

#easy_install supervisor

    通過安裝日誌可以發現安裝路徑為: /usr/bin/supervisor

使用python

#cd /opt/packages
#wget https://github.com/Supervisor/supervisor/archive/3.3.4.tar.gz
#tar zxvf 3.3.4
#cd supervisor-3.3.4/
#python setup.py install

    通過安裝日誌可以發現安裝路徑為: /usr/bin/supervisor

配置supervisor

    建立配置檔案

#mkdir -p /etc/supervisor
#mkdir -p /etc/supervisor/conf.d
#echo_supervisord_conf > /etc/supervisor/supervisord.conf
#vim /etc/supervisor/supervisord.conf

配置內容如下:

# 啟用訪問web控制介面,inet_http_server區段修改為
[inet_http_server]         
port=*:9001        

# 修改log路徑
[supervisord]
logfile=/var/log/supervisord.log

# 修改 unix_http_server file 路徑,避免被系統刪除
[unix_http_server]
file=/var/lock/supervisor.sock

# 和unix_http_server file保持一致
[supervisorctl]
serverurl=unix:///var/lock/supervisor.sock

# include區段修改為
[include]
files = /etc/supervisor/conf.d/*.conf

設定開機服務

#vim /etc/rc.d/init.d/supervisord

檔案內容如下:

#!/bin/sh
#
# /etc/rc.d/init.d/supervisord
#
# Supervisor is a client/server system that
# allows its users to monitor and control a
# number of processes on UNIX-like operating
# systems.
#
# chkconfig: - 64 36
# description: Supervisor Server
# processname: supervisord

# Source init functions
. /etc/init.d/functions

RETVAL=0
prog="supervisord"
pidfile="/tmp/supervisord.pid"
lockfile="/var/lock/supervisor.sock"

start()
{
        echo -n $"Starting $prog: "
        daemon --pidfile $pidfile supervisord -c /etc/supervisor/supervisord.conf
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch ${lockfile}
}

stop()
{
        echo -n $"Shutting down $prog: "
        killproc -p ${pidfile} /usr/bin/supervisord
        RETVAL=$?
        echo
        if [ $RETVAL -eq 0 ] ; then
                rm -f ${lockfile} ${pidfile}
        fi
}

case "$1" in

  start)
    start
  ;;

  stop)
    stop
  ;;

  status)
        status $prog
  ;;

  restart)
    stop
    start
  ;;

  *)
    echo "Usage: $0 {start|stop|restart|status}"
  ;;

esac

儲存退出

增加開機服務

#chmod +x /etc/rc.d/init.d/supervisord
#chkconfig --add supervisord
#chkconfig supervisord on

啟動服務並驗證

#service supervisord start
#firewall-cmd --zone=public --add-port=9001/tcp --permanent
#firewall-cmd --reload

在瀏覽器輸入 : http://ip:9001 ,檢視是否可以正常訪問,如果不能請再認真檢視上述步驟

運維命令

# 檢視程式狀態
supervisorctl status

# 關閉程式
supervisorctl stop app-name

# 啟動程式
supervisorctl start app-name

# 重啟
supervisorctl restart app-name

# 讀取有更新(增加)的配置檔案,不會啟動新新增的程式
supervisorctl reread

# 重啟配置檔案修改過的程式
supervisorctl update