supervisord 是用 python 實現的一款非常實用的程序管理工具,supervisord 還要求管理的程式是非 daemon 程式,supervisord 會幫你把它轉成 daemon 程式,因此如果用 supervisord 來管理 nginx 的話,必須在 nginx 的配置檔案裡新增一行設定 daemon off 讓 nginx 以非 daemon 方式啟動安裝
yum install python-setuptools
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf
mkdir /etc/supervisord.conf.d
修改配置 /etc/supervisord.conf
[include]
files = /etc/supervisord.conf.d/*.conf
新建管理的應用
cd /etc/supervisord.conf.d
vim golang-server.conf
配置檔案:
[program:golang-server]
directory = /data/go/golang-server
command
= /data/go/golang-servser/golang-server
autostart =
true
startsecs = 5
user = root
redirect_stderr =
true
stdout_logfile=/var/log/golang-server.log
stderr_logfile=/var/log/golang-server.log
配置說明:
command:表示執行的命令,填入完整的路徑即可。(編譯後的執行檔案路徑)啟動supervisorautostart:表示是否跟隨supervisor一起啟動。
autorestart:如果該程式掛了,是否重新啟動。
redirect_stderr :重定向輸出的日誌
stdout_logfile:終端標準輸出重定向檔案。
stderr_logfile:終端錯誤輸出重定向檔案。
directory:檔案路徑,不過貌似這個不寫也沒有關係,看到好多的部落格裡都沒有寫
supervisord -c /etc/supervisord.conf
檢視程序狀態
supervisorctl
每列分別代表:programe名稱、程序名稱,程序狀態、程序id,執行時間開機自啟 supervisord如果沒有輸出程序狀態,在當前狀態下輸入status試試
vim 開啟 /etc/rc.local 新增下面命令
/usr/local/bin/supervisord -c /etc/supervisord.conf
在新增前,先在終端測試一下命令是否能正常執行supervisord 管理如果不知道supervisord路徑可以用 find / -name supervisord 或者 whereis supervisord 檢視
supervisord 安裝完成後有兩個可用的命令列 supervisord 和 supervisorctl,命令使用解釋如下:遇到的問題說明 : 可以直接在系統shell中執行,也可以先執行supervisorctl,進入supervisorctl_shell中執行相應的命令。
error (no such process)
執行啟動命令,reload命令都是正常的,沒有報錯,檢視程序狀態的時候什麼都沒有顯示,說明程序沒有開啟, 遂執行supervisorctl start golang-server命令,報錯golang-server: error (no such process)參解決問題 : 配置檔案supervisor.conf中 ;[include]冒號去掉
使用Supervisord部署go應用
nohup 是後台作業的意思,nohup執行的程序將會忽略終端訊號執行。即後台執行乙個命令。nohup command 用nohup執行命令可以使命令永久的執行下去,和使用者終端沒有關係,例如我們斷開ssh連線都不會影響它的執行。supervisor是用python開發的一套通用的程序管理程式,能將...
supervisord程序管理
一 安裝 1.1 介紹 supervisor 簡單,高效,可擴充套件,相容性好,是乙個程序管理工具。1.2 安裝環境 yum install python setuptools 安裝服務 cd usr local src wget tar zxvf setuptools 0.6c11.tar.gz ...
supervisord 啟動失敗
temp被刪除有可能是系統重啟導致快取被系統自動乾掉了,然後就找不到了,一勞永逸的方法就是將對應的sock 檔案移動到其他目錄下,比如 var run supervisor supervisor.sock 如果修正後直接重啟不行,就手動建立 sock 試試 sudo touch var run su...