使用supervisord監控php指令碼狀態配置

來源:互聯網
上載者:User

      Supervisor的伺服器端稱為supervisord,主要負責在啟動自身時啟動管理的子進程,響應用戶端的命令,重啟崩潰或退出的子進程,記錄子進程stdout和stderr輸出,產生和處理子進程生命週期中的事件。可以在一個設定檔中配置相關參數,包括Supervisord自身的狀態,其管理的各個子進程的相關屬性。設定檔一般位於/etc/supervisord.conf。

      Supervisor的用戶端稱為supervisorctl,它提供了一個類shell的介面(即命令列)來使用supervisord服務端提供的功能。通過supervisorctl,使用者可以串連到supervisord伺服器處理序,獲得伺服器處理序控制的子進程的狀態,啟動和停止子進程,獲得正在啟動並執行進程列表。用戶端通過Unix域通訊端或者TCP通訊端與服務端進行通訊,伺服器端具有身份憑證認證機制,可以有效提升安全性。當用戶端和伺服器位於同一台機器上時,用戶端與伺服器共用同一個設定檔/etc/supervisord.conf,通過不同標籤來區分兩者的配置。

      Supervisor也提供了一個web頁面來查看和管理進程狀態,這個功能用得人比較少。

官網:http://www.supervisord.org

一、安裝supervisord

$brew install supervisord

在mac下安裝要比linux下安裝方便的多。

二、配置

修改/usr/local/etc/supervisord.ini檔案,取消以下幾行注釋

[inet_http_server] ; inet (TCP) server disabled by default
port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
username=user ; (default is no username (open server))
password=123 ; (default is no password (open server))

這樣就可以通過瀏覽器對進行管理了。

三、添加一個新應用

建立一個a.php檔案,內容如下:

while(true){
echo 'a' . time() . "\r\n";
sleep(1);
}

然後在supervisord.ini檔案中添加以下幾行:

[program:php]
command=php /Users/sxf/web/a.php
autostart=true
autorestart=true
startsecs=1
startretries=3
redirect_stderr=true
stdout_logfile=/Users/sxf/web/supervisord.log
stderr_logfile=/Users/sxf/web/stderr.log

重啟supervisord。

$brew services restart supervisord
開啟瀏覽器http://127.0.0.9001,輸入使用者名稱和密碼,可以看此進程,可以對每個進程進行停止,重啟和重新整理操作。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.