使用supervisor監控管理Linux服務程序

2021-10-19 14:30:31 字數 2955 閱讀 2375

supervisor docs

使用ssh遠端維護vps時候,要在後台掛起乙個程式。掛起程式很簡單,在command後加上&符號就可以,但是當斷開ssh時候,掛起的程式也隨之killed, 很是惱火。在使用nohup的時候意外發現了supervisor,supervisor使用python開發,通過配置檔案來配置需要啟動監管的程式,作為supervisord的子程序。執行程式supervisord即『守護程序』(daemon)[在希臘神話中是守護神的意思!類似中國的**?daemon這個詞和惡魔(demon)只差乙個字母,且發音完全一樣!多的a這個品質可理解為全神關注的(absorbed)/精確的(accurate)/能幹的(able)/樂於助人的(accommodating)/友好的(amicable)]。類似httpd,mysqld最後的d字母意為守護程式。

easy_install supervisor

orpip3 install supervisor

orsudo apt install supervisor

執行命令echo_supervisord_conf回顯預設的初始配置檔案。

可通過管道命令將配置檔案重定向到某個目錄,eg:echo_supervisord_conf > /etc/supervisord.conf

以root使用者執行需要增加user=root

supervisord -c supervisor.conf

啟用web監控服務

通過瀏覽器遠端管理,啟動停止程式,檢視日誌等,非常方便。

sudo service supervisor restarthttp server控制面板生效

配置redis開機自啟服務

sudo supervisorctl

whereis supervisor

sudo vim /etc/supervisord.conf

[program:redisserver]

command=/opt/redis/src/redis-server /opt/redis/redis.conf

autostart=true

autorestart=true

startsecs=0

user=root

stdout_logfile=/var/log/redis/stdout.log

stderr_logfile=/var/log/redis/stderr.log

mkdir /var/log/redis # 首先建立日誌目錄

sudo supervisorctl update # 更新 supervisord.conf 後生效

配置簡單的http服務

例如要在vps上啟用乙個簡單的http服務,用於分享download目錄下的檔案

日誌目錄需要手動建立mkdir /var/log/

配置服務的環境變數

如果程式需要環境變數,那麼需要手動新增environment

首先使用env檢視所有的環境變數,然後拼接所需的變數,通過:,間隔,示例:

[program:***-server]

;...

environment=pythonpath=/home/***/***x:/home/***/ooo,path=/home/***/lib

;...

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-amp8qf8o-1613829904942)(supervisor-subprocess-transitions.png)]

七種狀態

第八種unknown(由supervisord出錯引起)

使用supervisor監控程序

10 26 09,876 info success meta.txn.recover.on.error entered running state,process has stayed up for than 1 seconds startsecs 2010 08 17 10 26 48,442 i...

使用Superivisor監控管理程序

1.superivisor簡介 supervisor是乙個c s系統,它允許使用者在類unix系統上監控和管理一系列的程序。你可以把乙個程序以daemon的形式用supervisor來管理。2.安裝 使用pip來安裝supervisor root test1 pip install supervis...

supervisor 監控服務

寫了乙個ftp服務,用supervisor監控一下 1.先寫乙個配置檔案,路徑和名稱為 etc supervisord.conf.d ftp server.ini program ftp server command usr local bin python data ftp server ftp ...