1. 程式人生 > >supervisor 啟動一個守護程序詳細過程

supervisor 啟動一個守護程序詳細過程

一、安裝

apt install supervisor

原始碼安裝

cd /usr/local/src
wget https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419eae/supervisor-3.3.2.tar.gz
tar -zxvf supervisor-3.3.2.tar.gz
cd supervisor-3.3.2
python setup.py install #本地python版本為python2.7
# python2.7 setup.py install #本地python版本為python3以上

二、配置

1.生成配置檔案

ls /etc/supervisor

conf.d  supervisord.conf

2.啟動

supervisord -c /etc/supervisord.conf

檢視 supervisord 是否在執行:

ps aux | grep supervisord

3.配置

 

vim /etc/supervisord.conf

在配置檔案底部,配置include

[include]
files = /etc/supervisor/conf.d/*.conf #若你本地無/etc/supervisor/conf.d目錄,請自建

寫用supervisor管理程序,配置如下:

cd /etc/supervisor/conf.d/  
vim my.conf  # 這裡檔名可以自定義

加入以下內容

;設定程序的名稱,使用 uervisorctl 來管理程序時需要使用該程序名
[program:root]
command=python3 /root/test_dome/manage.py runserver 0.0.0.0:8000
;numprocs=1                 ; 預設為1
;process_name=%(program_name)s   ; 預設為 %(program_name)s,即 [program:x] 中的 x
directory=/root/test_dome/ ; 執行 command 之前,先切換到工作目錄
user=root                 ; 使用 root 使用者來啟動該程序
; 程式崩潰時自動重啟,重啟次數是有限制的,預設為3次
autorestart=true
redirect_stderr=true        ; 重定向輸出的日誌
stdout_logfile = /root/test_dome/log.log
loglevel=info

更改了supervisor配置檔案,需要重啟,執行以下指令:

supervisorctl reload

4.supervisorctl的用法

supervisord : 啟動supervisor
supervisorctl reload :修改完配置檔案後重新啟動supervisor
supervisorctl status :檢視supervisor監管的程序狀態
supervisorctl start 程序名 :啟動XXX程序
supervisorctl stop 程序名 :停止XXX程序
supervisorctl stop all:停止全部程序,注:start、restart、stop都不會載入最新的配置檔案。
supervisorctl update:根據最新的配置檔案,啟動新配置或有改動的程序,配置沒有改動的程序不會受影響而重啟

三、設定開機啟動