Supervisor 程式管理工具
supervisor
1.介紹
Supervisor是一個用 Python 寫的程式管理工具,可以很方便的用來啟動、重啟、關閉程式(不僅僅是 Python 程式)。除了對單個程式的控制,還可以同時啟動、關閉多個程式,比如很不幸的伺服器出問題導致所有應用程式都被殺死,此時可以用 supervisor 同時啟動所有應用程式而不是一個一個地敲命令啟動。
2.安裝
提供以下兩種安裝方法:
-
# pip install supervisor
-
# tar zxvf supervisor-3.1.3.tar.gz
# cd supervisor
# python setup.py install
3.配置
-
生成配置檔案
# echosupervisordconf > /etc/supervisord.conf -
更改配置檔案,這裡以tomcat,ismsrvdebug為例
# vim /etc/supervisord.conf
# program配置
[program:tomcat]
directory = /opt/tomcatapp/bin ; 程式的啟動目錄
command = sh startup.sh ; 啟動命令,可看出與手動在命令列啟動的命令是一樣的
autostart = true ; 在 supervisord 啟動的時候也自動啟動
startsecs = 10 ; 啟動10秒後沒有異常退出,就當作已經正常啟動了
autorestart = true ; 程式異常退出後自動重啟
startretries = 3 ; 啟動失敗自動重試次數,預設是 3
user = root ; 用哪個使用者啟動
redirectstderr = true ; 把 stderr 重定向到 stdout,預設 false
stdoutlogfilemaxbytes = 20MB ; stdout 日誌檔案大小,預設 20MB
stdoutlogfilebackups = 20 ; stdout 日誌檔案備份數
stdoutlogfile = /opt/supervisor-3.1.3/super.log ; stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案)
;environment = PYTHONPATH=$PYTHONPATH:/opt/mypy -
更改tomcat配置
使用Supervisord監控管理的程式必須以nodaemon啟動,即不能為後臺守護程式。而tomcat的startup.sh指令碼是daemon方式的,所以需要更改配置檔案。
# vim /opt/tomcat_app/bin/startup.sh
(將start改為run)
exec "$PRGDIR"/"$EXECUTABLE" run "$@"
4.啟動
# supervisord -c /etc/supervisord.conf 啟動Supervisor
# supervisorctl status 檢視狀態
# supervisorctl reload 重新載入配置檔案
# supervisorctl start tomcat 啟動專案
# supervisorctl stop tomcat 關閉專案
# supervisorctl restart tomcat 重啟專案
5.驗證
# ps -ef | grep tomcat 檢視,未啟動tomcat
# 啟動Supervisor # ps -ef | grep tomcat Supervisor啟動的時候也會啟動tomcat
# 模擬 kill掉tomcat程式。
# ps -ef | grep tomcat 檢視會發現tomcat被自動拉起,程式號改變了
6.注意
可以把所有配置項都寫到 supervisord.conf 檔案裡,但並不推薦這樣做,而是通過 include 的方式把不同的程式(組)寫到不同的配置檔案裡。我們新建一個目錄 /etc/supervisor/ 用於存放這些配置檔案。
# vim /etc/supervisord.conf
[include]
files = /etc/supervisor/*.conf
建立配置檔案管理program。
一份配置檔案至少需要一個 [program:x] 部分的配置,來告訴 supervisord 需要管理那個程式。
相關文章
- Supervisor程式管理工具安裝配置
- Linux程式管理工具Supervisor的安裝配置Linux
- Linux程式管理工具supervisor安裝及使用Linux
- 程式守護 supervisor
- supervisor 程式管理入門
- Golang 程式守護 SupervisorGolang
- Supervisor管理Laravels,Laravels程式管理Laravel
- 模擬supervisor的程式管理
- Python程式管理神器——SupervisorPython
- 程式管理程式supervisor安裝和使用
- .Net Core 程式守護之Supervisor使用
- laravel佇列之Supervisor守護程式Laravel佇列
- 【Linux】使用 Supervisor管理後臺程式Linux
- 使用Python的Supervisor來管理程式Python
- Supervisor 管理程式,Cloud Insight 監控程式,完美!Cloud
- 解放程式設計師雙手之Supervisor程式設計師
- Linux下使用supervisor實現程式管理Linux
- supervisor for MacMac
- Supervisor 配置
- laravel佇列之Supervisor守護程式(centos篇)Laravel佇列CentOS
- supervisor守護程式並配置郵件報警
- 使用supervisor管理你的nginx、php-fpm程式NginxPHP
- 安裝 supervisor
- 安裝Supervisor
- systemd程式管理工具
- Supervisor (程式管理利器) 使用說明 - 運維筆記運維筆記
- Supervisor使用詳解
- Supervisor 環境搭建
- Supervisor 使用總結
- Laravel中使用supervisorLaravel
- python supervisor使用Python
- supervisor原始碼分析原始碼
- supervisor的client apiclientAPI
- supervisor 使用記錄
- supervisor 管理 Django 程序Django
- 一個替代 Supervisor 且更加友好的程式監控器
- 程式碼片段管理工具
- Linux程式管理工具Linux