程序管理利器Supervisor--centos7下安裝與配置
阿新 • • 發佈:2018-12-11
目錄
- 概述
- 環境準備
- 檢查python環境
- 線上安裝
- 配置Supervisor
- 啟動並驗證
- 運維命令
概述
瞭解supervisor基本概念,請點選檢視程序管理利器Supervisor--入門簡介
Supervisor的安裝可以有線上安裝和離線安裝兩種方式。安裝方式取決於伺服器是否聯網,聯網的話可採用線上安裝,否則採用離線安裝。
本文僅介紹線上安裝方式
轉帖請註明原貼地址: https://my.oschina.net/u/2342969/blog/2986173
環境準備
- 最小化安裝centos7
- Supervisor3.3.4
- 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