supervisord的介紹:
-
- 官網: http://supervisord.org/
- github: https://github.com/Supervisor/supervisor
概述:
軟體功能:
本軟體是程序管理系統,可以很簡單的管理系統,同時提供了很豐富的接口可以讓你随心所欲的管理
應用場景:
-
- 常駐任務維護、管理,不論你的常駐程序是什麼語言寫的,都可以使用本神器管理
- 用來監控nginx, redis, mongodb等軟體,實作軟體如果因為異常挂了,可以自動重新開機,不至于終端服務
簡單來講:守護程序,如果你的程序一直在運作,突然挂了。 那麼supervisord能幫你速度拉起這個程序,使之正常運作
架構:
supervisord: 服務端,真正用來監控程式的程序
supervisorctl: 用戶端,用來管理監控程式的程序
安裝:
說明:
-
- 我這裡采用了一個自己約定的規範,友善組内成員形成共識,對服務管理沒有學習成本
- 我是依賴python安裝的
規範:
-
- 軟體根目錄: /data/opt
- 快捷方式根目錄: /data/opt/scripts,其中本目錄會加入到系統PATH中。export PATH='/data/opt/scripts':$PATH
- supervisord的配置目錄、以及運作日志目錄都放置在/data/opt/supervisord裡
依賴:
python
安裝:
pip install supervisor
配置檔案
“echo_supervisord_conf”指令來生成配置檔案,例
echo_supervisord_conf > /etc/supervisord.conf
配置管理的程序
在 /etc/supervisord.conf 最後加上這兩句
[program:python]
command=python /tmp/test.py
/tmp/test.py的檔案内容
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
while(True):
# 3秒
time.sleep(1)
# 打開檔案
fo = open("/tmp/test.txt", "a")
print "檔案名為: ", fo.name
str = time.ctime() + "\n"
fo.write( str )
# 關閉檔案
fo.close()
啟動supervisord
supervisord #回車即啟動 -h 下可以看下參數的具體配置
檢視 python的程序
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SOzcTM2QGNjBTMwMmNyU2YxYzX4ADOzUDMxMzLcJTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
可以看到 /tmp/test.txt 裡面的内容在增加
測試
現在收到殺掉python test.py這個程序
kill -9 5535 殺死python test.py這個程序
然後再去檢視程序 馬上就可以看到 python test.py又出現了
看下 程序号 已經變成了 5592
參考:
相當不錯的講解
結構樹講解跟配置
supervisord 配置參數解釋