這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
supervisor是一個unix的系統進程管理軟體,可以用它來管理apache、nginx等服務,若服務掛了可以讓它們自動重啟。下面基於centos 6.6,描述下具體實現:
sudo聽yum聽install聽python-setuptoolssudo聽easy_install聽supervisor
如果沒有看到什麼報錯,那麼就安裝成功了,可以使用echo_supervisord_conf查看配置詳情,而後組建組態檔案。
sudo聽echo_supervisord_conf聽>聽/etc/supervisord.conf
假設如下一段簡單的golang代碼:
package
main
聽
import
(
聽聽聽聽
"fmt"
聽聽聽聽
"log"
聽聽聽聽
"net/http"
)
聽
func
main() {
聽聽聽聽
http.HandleFunc(
"/"
,聽
func
(w http.ResponseWriter, r *http.Request) {
聽聽聽聽聽聽聽聽
fmt.Fprintf(w,聽
"Hello world"
)
聽聽聽聽
})
聽
聽聽聽聽
err := http.ListenAndServe(
":9090"
, nil)
聽聽聽聽
if
err != nil {
聽聽聽聽聽聽聽聽
log.Fatal(
"ListenAndServe: "
, err)
聽聽聽聽
}
}
go build編譯,在/usr/local/ponpon/gowork/src/test/產生可執行檔test。
編輯/etc/supervisord.conf,在最後增加運行程式設定
[program:go-http-server]command=/usr/local/ponpon/gowork/src/test/testdirectory=/usr/local/ponpon/gowork/src/testautostart=trueautorestart=truestartsecs=10stdout_logfile=/var/log/stdout.logstdout_logfile_maxbytes=1MBstdout_logfile_backups=10stdout_capture_maxbytes=1MBstderr_logfile=/var/log/stderr.logstderr_logfile_maxbytes=1MBstderr_logfile_backups=10stderr_capture_maxbytes=1MB
幾個配置說明:
command:表示啟動並執行命令,填入完整的路徑即可。
directory:表示cd到應用的目錄下
autostart:表示是否跟隨supervisor一起啟動。
autorestart:如果該程式掛了,是否重新啟動。
stdout_logfile:終端標準輸出重新導向檔案。
stderr_logfile:終端錯誤輸出重新導向檔案。
最後啟動supervisor
sudo聽/usr/bin/supervisord聽-c聽/etc/supervisord.conf
如果提示/tmp/supervisord.sock 報錯,刪除/tmp/supervisord.sock重新啟動supervisor即可
本文出自 “Programming in XMU” 部落格,請務必保留此出處http://liuxp0827.blog.51cto.com/5013343/1643620