supervisor in Ubuntu

這邊只單純說明我用supervisor這個軟體做什麼。

這邊我要用Gunicorn當作server來跑一個Django的網站。
但如果只單純地用Guincorn放任他在背景天昏地暗的跑,可能哪天遇到個意外的話這個程序就中斷了。那supervisor這個軟體的其中一個功能就是可以讓我們的Gunicorn即便中斷也可以再讓他啟動。上面那個是我主要需要的功能,但他還有很多其他功能,其中值得一提的是他還能夠清楚地監控正在執行的程式。基本上supervisor官網有很清楚的文件。這篇文章比較偏向是把自己做過的事紀錄一下。以下是概略的安裝,設定和使用方法。

安裝
這步驟算是最簡單的。有兩個很簡單的方法,其中一個是使用ubuntu的apt,另外一個則是使用python的pip。

用apt安裝
sudo apt-get install supervisor
用pip安裝
sudo pip install supervisor

設定
supervisor預設的設定檔的位置是在/etc/supervisor/supervisord.conf
或/etc/supervisord.conf
其中預設的設定檔中有include了 /etc/supervisor/conf.d 目錄下的所以設定檔。
所以我們可以將設定檔放到這個目錄下,並分別以不同的程序命名。

參考這篇"Setting up Django with Nginx, Gunicorn, virtualenv, supervisor and PostgreSQL"的文章,最後的兩個步驟其一是寫一個shell script跑gunicorn。
另外一個則是將supervisor的conf檔設定好,其中command的參數就是上面的那個script.
參數還包含了log檔案位置,設定程序執行的使用者等等。

使用
我們主要會用到的會是supervisorctl這個程式,可以方便我們監控程序的執行。


P.S. 在設定supervisor和gunicorn user時我安裝的主機遇到一個奇怪的問題。當我同時設定都設定使用者時supervisor會無法啟動這個程序。後來我不設定gunicorn上的使用者就能夠使用了。

留言

這個網誌中的熱門文章

幾個匿名聊天app比較和心得

matched betting和股票當沖的小認識心得

spotify 家庭方案根本在整人

ubereats 送餐員初體驗

狂推 Life is strange 啊!!!