supervisor:進程管理工具

一,安裝(任何一種方式)

  • apt-get install supervisor
  • easy_install supervisor
  • pip install supervisor

二,配置

  1. 配置supervisor.conf
    • 添加web控制界面

            image

      2.    啓動進程配置說明web

; 管理單個進程的配置,可建立多個,下面是全部可能的配置選項
;[program:theprogramname]
;command=/bin/cat              ; 啓動進程的命令 使用相對路徑,能夠加參數
;process_name=%(program_name)s ; 進程名稱 表達式 (默認 %(program_name)s)
;numprocs=1                    ; 進程數目 (def 1)
;directory=/tmp                ; 執行命令所在的目錄 (def no cwd)
;umask=022                     ; 進程默認權限 (default None)
;priority=999                  ; 進程啓動相對優先權 (default 999)
;autostart=true                ; 跟隨supervisor啓動時啓動 (default: true)
;autorestart=unexpected        ; 計劃啓動 (default: unexpected)
;startsecs=1                   ; 延時啓動 (def. 1)
;startretries=3                ; 最多連續啓動失敗 (default 3)
;exitcodes=0,2                 ; 進程結束代碼 (default 0,2)
;stopsignal=QUIT               ; signal used to kill process (default TERM)
;stopwaitsecs=10               ; 最長結束等待時間,不然使用 SIGKILL (default 10)
;stopasgroup=false             ; 是否想UNIX進程組發送結束信號 (default false)
;killasgroup=false             ; SIGKILL UNIX 進程組 (def false)
;user=chrism                   ; 設置啓動此程序的用戶
;redirect_stderr=true          ; 重定向程序的標準錯誤到標準輸出 (default false)
;stdout_logfile=/a/path        ; 標準輸出的日誌路徑, NONE for none; default AUTO
;stdout_logfile_maxbytes=1MB   ; 日誌文件最大值,不然循環寫入 (default 50MB)
;stdout_logfile_backups=10     ; 標準輸出日誌備份數目 (default 10)
;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
;stdout_events_enabled=false   ; emit events on stdout writes (default false)
;stderr_logfile=/a/path        ; 標準錯誤輸出日誌路徑, NONE for none; default AUTO
;stderr_logfile_maxbytes=1MB   ; 日誌文件最大值,不然循環寫入 (default 50MB)
;stderr_logfile_backups=10     ; 標準錯誤日誌備份數目 (default 10)
;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
;stderr_events_enabled=false   ; emit events on stderr writes (default false)
;environment=A="1",B="2"       ; 進程附加環境 (def no adds)
;serverurl=AUTO                ; override serverurl computation (childutils)

配置範例:ide

image

注:工具

  • 該文件必須放在conf.d文件夾下
  • 配置文件名後綴必須爲.conf

三,管理工具

  1. supervisorctl 管理終端:
supervisorctl status: 查看當前運行的進程列表
supervisorctl stop xxx: 中止某一個進程(xxx),xxx爲[program:theprogramname]裏配置的值。
supervisorctl start xxx: 啓動某個進程
supervisorctl restart xxx: 重啓某個進程
supervisorctl stop groupworker: 重啓全部屬於名爲groupworker這個分組的進程(start,restart同理)
supervisorctl stop all,中止所有進程,注:start、restart、stop都不會載入最新的配置文件。
supervisorctl reload,載入最新的配置文件,中止原有進程並按新的配置啓動、管理全部進程。
supervisorctl update,根據最新的配置文件,啓動新配置或有改動的進程,配置沒有改動的進程不會受影響而重啓。
注意:顯示用stop中止掉的進程,用reload或者update都不會自動重啓。

   2.webthis

image

 

  3.從新啓動url

 ps -ef | grep supervisordspa

/etc/init.d/supervisor startpwa

 

四,FAQ

* Starting Supervisor daemon manager......
Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h
......fail!

方法:http://stackoverflow.com/questions/14479894/stopping-supervisord-shut-downrest

相關文章
相關標籤/搜索