標籤:
原文:http://maemual.me/index.php/archives/8/
Supervisor是一個進程式控制製程序。用於監控管理你需要的程式。
當你有一個程式,需要長期在後台運行,並且希望能夠在這個程式崩潰之後自動重新啟動的時候,你就需要Supervisor了。
安裝
sudo apt-get install supervisor
配置
Supervisor的設定檔在/etc/supervisor/supervisor.conf。但是通常我們並不需要修改Supervisor的設定檔。我們需要增加我們需要監管的程式。
在/etc/supervisor/conf.d下建立我們自己的配置。例如前面博文裡面提到的shadowsocks,建立/etc/supervisor/conf.d/shadowsocks.conf設定檔,使用最簡單的格式如下:
[program:shadowsocks]command=ssserver -c /etc/shadowsocks.jsonautorestart=trueuser=nobody
第一行表示程式的名字,第二行command表示運行某程式的命令,第三行表示自動重啟,第四行的user表示以什麼身份運行該程式。
當然還有很多有用的參數,如autostart表示該程式是否隨著supervisor的啟動而啟動。詳情可見官方文檔
運行
Supervisor在運行時有兩個進程,supervisord和supervisorctl。其中前者是背景守護進程,也是主進程。後者是用來讓管理員和守護進程互動的程式。
supervisord的啟動停止可以使用以下管理:
sudo service supervisor startsudo service supervisor restartsudo service supervisor stop
使用這種方式運行,supervisor會預設讀取/etc/supervisor下面的設定檔。
管理
supervisorctl status
查看當前所有程式的運行狀態。status後面可以加上具體某個程式的名字來看其狀態。
supervisorctl start xxx
啟動xxx程式。如果xxx是all的話,表明啟動所有程式。
supervisorctl restart xxx
以上同理
supervisorctl stop xxx
以上同理
supervisorctl reload
重新載入配置。原來正在啟動並執行程式會全部重啟。
supervisorctl update
載入新的配置,原來正在啟動並執行程式不會重啟。
supervisorctl tail -f shadowsocks stderr
查看標準錯誤輸出。
Supervisor快速上手指南(轉)