ubuntu 守護進程supervisor的安裝及使用(轉載)

原文地址:http://blog.csdn.net/u012374229/article/details/47158435python

注意:如下代碼,命令和配置在ubuntu14.04LTS上實際測試,其餘發行版或ubuntu其餘版本僅供參考sql

  • 安裝 
    安裝可使用一下命令:
sudo apt-get install supervisor

安裝成功後,supervisor就會默認啓動shell

  • 使用 
    有不少方法添加進程,看了不少博客上的介紹和加上個人實際使用,我認爲一下方法最好用: 
    將每一個進程的配置文件單獨拆分,放在/etc/supervisor/conf.d/目錄下,以.conf做爲擴展名,例如test.conf定義的一個簡單的HTTP服務器:
[program:test] command=python -m SimpleHTTPServer

 

重啓supervisor,讓配置文件生效,而後啓動test進程:ubuntu

supervisorctl reload
supervisorctl start test

若是要中止進程,就用stop 
其餘一些配置,經過這個例子講解bash

[program:meta.txn.recover.on.error] command=/cas/bin/meta.txn.recover.on.error ; 被監控的進程路徑 numprocs=1 ; 啓動幾個進程 directory=/cas/bin ; 執行前要不要先cd到目錄去,通常不用 autostart=true ; 隨着supervisord的啓動而啓動 autorestart=true ; 自動重啓。。固然要選上了 startretries=10 ; 啓動失敗時的最多重試次數 exitcodes=0 ; 正常退出代碼(是說退出代碼是這個時就再也不重啓了嗎?待肯定) stopsignal=KILL ; 用來殺死進程的信號 stopwaitsecs=10 ; 發送SIGKILL前的等待時間 redirect_stderr=true ; 重定向stderr到stdout stdout_logfile=logfile ; 指定日誌文件

 

經常使用命令: 
supervisorctl start programxxx,啓動某個進程服務器

supervisorctl restart programxxx,重啓某個進程測試

supervisorctl stop groupworker: ,重啓全部屬於名爲groupworker這個分組的進程(start,restart同理)ui

supervisorctl stop all,中止所有進程,注:start、restart、stop都不會載入最新的配置文件。spa

supervisorctl reload,載入最新的配置文件,中止原有進程並按新的配置啓動、管理全部進程。.net

supervisorctl update,根據最新的配置文件,啓動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啓。

supervisor啓動和中止的日誌文件存放在/var/log/supervisor/supervisord.log

注意:顯式用stop中止掉的進程,用reload或者update都不會自動重啓

相關文章
相關標籤/搜索