Supervisor是一個客戶端/服務器系統,容許其用戶在類UNIX操做系統上控制許多進程。(官方解釋)
簡單點來說,就是一個監控腳本運行的工具,不過他能夠統一化管理,laravel的隊列文檔上也有相關使用方式方法,例如php
通常都使用 &test.sh
讓其來保證在後臺運行,但在不少狀況下,沒法對腳本我的化的監控。這時你可能就須要 Supervisor 來幫助你。你大可把它看成你的unix系統的可視化管理後臺。下面來讓咱們見證它的強大之處。html
Supervisor 有多種安裝方式,我推薦其中最簡單也是最容易安裝的一種python
apt-get -y install python-setuptools easy_install supervisor
正如你所見,兩條命令即完成安裝laravel
Supervisor安裝完成後,運行 echo_supervisord_conf
。這將打印一個示例的Supervisor配置文件到您的終端。只要你能看到打印的配置文件內容。redis
Supervisor 不會自動生成配置文件。shell
請使用命令 echo_supervisord_conf > /etc/supervisord.conf
來生成配置文件。api
名稱 | 註釋 | 栗子 |
---|---|---|
inet_http_server[port] | 內置管理後臺 | *:8888 |
inet_http_server[username] | 管理後臺用戶名 | admin |
inet_http_server[password] | 管理後臺密碼 | admin |
include[files] | 設置進程配置文件格式 | /etc/supervisor/supervisor.d/*.ini |
Supervisor 啓動需加載配置文件bash
supervisord -c /etc/supervisor/supervisord.conf
中止命令是服務器
supervisorctl shutdown
從新加載配置文件swoole
supervisorctl reload
Supervisor 以 [program:[your_cli_name]]
以每段進程配置文件的開頭,your_cli_name 則是你的進程名稱,名稱會顯示在Supervisor後臺管理工具和Supervisor cli命令輸出上。咱們以運行php-fpm爲例
[program:php7] command=php-fpm
哦呦,就是醬紫簡單。沒有過多的廢話。或者運行一段shell。
[program:echo] command=sh echo.sh -------------------------------- echo.sh your_name="my name zhangsan" echo $your_name
固然laravel隊列也是依舊簡單
[program:laravel-worker] command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3
固然這裏只是簡單的演示,讓你能夠快速上手,配置腳本內不單單隻有command命令。
具體可見官方文檔 http://www.supervisord.org/co...
Supervisor提供的後臺管理比較簡單
大體功能有 重啓、啓動、中止進程,打印日誌,清除日誌等。基本上就這麼幾個簡單的功能,固然也沒有宕機報警,日誌報警什麼的。不過強大的Supervisor爲咱們提供了接口😄
經過API能獲取基本全部的信息,例如進程列表,某個進程的狀態,進程日誌。包括對進程的重啓、中止、開啓等操做,將Supervisor完全集成到內部監控後臺也是沒有什麼問題的。
具體內容請移步官網Api文檔 http://www.supervisord.org/ap...
最後送給朋友們一個簡單的腳本,方便用於學習Supervisor
#!/bin/bash set -x case $1 in 'sp') if [[ $2 == 'start' ]]; then "supervisord -c /etc/supervisor/supervisord.conf" elif [[ $2 == 'stop' ]]; then "supervisorctl shutdown" elif [[ $2 == 'restart' ]]; then "supervisorctl shutdown" "supervisord -c /etc/supervisor/supervisord.conf" elif [[ $2 == 'reload' ]]; then "supervisorctl reload" fi ;; esac
你可使用這個簡單的腳本快速啓動、重啓、關閉Supervisor
sh test.sh sp start // 啓動 sh test.sh sp restart // 重啓
感謝看到這裏,但願本章能夠幫到你。謝謝