Supervisord部署Go應用

2021-09-20 03:48:46 字數 2329 閱讀 8592

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:表示執行的命令,填入完整的路徑即可。(編譯後的執行檔案路徑)

autostart:表示是否跟隨supervisor一起啟動。

autorestart:如果該程式掛了,是否重新啟動。

redirect_stderr :重定向輸出的日誌

stdout_logfile:終端標準輸出重定向檔案。

stderr_logfile:終端錯誤輸出重定向檔案。

directory:檔案路徑,不過貌似這個不寫也沒有關係,看到好多的部落格裡都沒有寫

啟動supervisor

supervisord -c /etc/supervisord.conf
檢視程序狀態

supervisorctl

每列分別代表:programe名稱、程序名稱,程序狀態、程序id,執行時間

如果沒有輸出程序狀態,在當前狀態下輸入status試試

開機自啟 supervisord

vim 開啟 /etc/rc.local 新增下面命令

/usr/local/bin/supervisord -c /etc/supervisord.conf
在新增前,先在終端測試一下命令是否能正常執行

如果不知道supervisord路徑可以用 find / -name supervisord 或者 whereis supervisord 檢視

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...