supervisor mac 佈署

supervisor主要由Supervisord、Supervisorctl、Web server和XML-RPC interface組成。

  • Supervisord:主進程,負責管理進程的server,它會根據配置文件創建指定數量的應用程序的子進程,管理子進程的整個生命週期,對crash的進程重啓,對進程變化發送事件通知等。同時通過內置web server和XML-RPC Interface可以輕鬆實現進程管理。
  • Supervisorctl:管理client,用戶通過命令行發送消息給supervisord,可以查看進程狀態,加載配置文件,啓停進程,查看進程標準輸出和錯誤輸出,遠程操作等。
  • Web server:superviosr提供了web server功能,可通過web控制進程。
  • XML-RPC interface: XML-RPC接口,提供XML-RPC服務來對子進程進行管理和監控。

安裝方法:

 

>brew install supervisor
>sudo npm install supervisor -g    //mac

常用命令:

# 啓動supervisor
>python /usr/bin/supervisord

# 啓動監控的進程
>supervisorctl start all

# 關閉監控的進程
>supervisorctl stop all

# 查看狀態
>supervisorctl status

# 重新加載配置文件:
>supervisorctl reload

# 開啓supervisor
>brew services start supervisor

# 重啓supervisor
>brew services restart supervisor

# 停止supervisor
>brew services stop supervisor

 

開啓 web 管理:

>vi /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=fengjx ; (default is no username (open server))

password=fengjx1989 ; (default is no password (open server))

# 重啓服務

>brew services start supervisor

==> Tapping homebrew/services

Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...

remote: Counting objects: 10, done.

remote: Compressing objects: 100% (7/7), done.

remote: Total 10 (delta 0), reused 6 (delta 0), pack-reused 0

Unpacking objects: 100% (10/10), done.

Tapped 0 formulae (37 files, 51KB)

==> Successfully started `supervisor` (label: homebrew.mxcl.supervisor)

在這裏插入圖片描述

進程管理:

supervisord.ini 的最後一行配置:

files = /usr/local/etc/supervisor.d/*.ini

我們可以吧配置文件寫到 /usr/local/etc/supervisor.d/ 目錄下,只要以.ini 後綴結尾就行,例如管理nginx的狀態:

vi nginx.ini

[program:nginx]

command = sudo /usr/local/bin/nginx

stdout_logfile=/data/home/supervisor/logs/nginx_stdout.log

stdout_logfile_maxbytes=10MB

stderr_logfile=/data/home/supervisor/logs/nginx_stderr.log

stderr_logfile_maxbytes=10MB

autostart=true

autorestart=true

;environment = PATH="$PATH:/usr/local/bin"

然後,使用 supervisorctl 啓動 nginx。

supervisorctl start nginx

參考:
github上2個基於supervisor二次開發的集中進程管理工具,可在一個頁面下管理多臺機器的進程:
https://github.com/mlazarov/s...
https://github.com/TAKEALOT/n...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章