成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用Supervisor管理進(jìn)程

buildupchao / 1383人閱讀

摘要:首發(fā)于樊浩柏科學(xué)院是一款使用開發(fā)的非常優(yōu)秀的進(jìn)程管理工具。它可以在類系統(tǒng)上讓用戶精確地監(jiān)視與控制多組指定數(shù)量的服務(wù)進(jìn)程。當(dāng)監(jiān)控的服務(wù)進(jìn)程意外退出時(shí),會(huì)嘗試自動(dòng)重啟這些服務(wù),以保持服務(wù)可用狀態(tài)。安裝官方提供的安裝方式較多,這里采用方式安裝。

首發(fā)于 樊浩柏科學(xué)院

Supervisor 是一款使用 Python 開發(fā)的非常優(yōu)秀的進(jìn)程管理工具。它可以在類 UNIX 系統(tǒng)上讓用戶精確地監(jiān)視與控制多組指定數(shù)量的服務(wù)進(jìn)程。當(dāng)監(jiān)控的服務(wù)進(jìn)程意外退出時(shí),會(huì)嘗試自動(dòng)重啟這些服務(wù),以保持服務(wù)可用狀態(tài)。

安裝

Supervisor 官方 提供的安裝方式較多,這里采用 pip 方式安裝。

安裝pip
$ yum install python-pip
# 升級(jí)pip
$ pip install --upgrade pip
$ pip -V
pip 9.0.1
安裝Supervisor

通過 pip 安裝 Supervisor:

$ pip install supervisor
Successfully installed supervisor-3.3.3

安裝 Supervisor 后,會(huì)出現(xiàn) supervisorctl 和 supervisord 兩個(gè)程序,其中 supervisorctl 為服務(wù)監(jiān)控終端,而 supervisord 才是所有監(jiān)控服務(wù)的大腦。查看 supervisord 是否安裝成功:

$ supervisord -v
3.3.3
開機(jī)啟動(dòng)

將 supervisord 配置成開機(jī)啟動(dòng)服務(wù),下載官方 init 腳本。

修改關(guān)鍵路徑配置:

PIDFILE=/var/run/supervisord.pid
LOCKFILE=/var/lock/subsys/supervisord
OPTIONS="-c /etc/supervisord.conf"

移到該文件到/etc/init.d目錄下,并重命名為 supervisor,添加可執(zhí)行權(quán)限:

$ chmod 777 /etc/init.d/supervisor

配置成開機(jī)啟動(dòng)服務(wù):

$ chkconfig --add supervisor
$ chkconfig supervisor on
$ chkconfig --list | grep "supervisor"
supervisor  0:off 1:off 2:on 3:on 4:on 5:on 6:off
配置 生成配置文件

Supervisord 安裝后,需要使用如下命令生成配置文件。

$ mkdir /etc/supervisor
$ echo_supervisord_conf > /etc/supervisor/supervisord.conf
主配置部分

supervisord.conf的主配置部分說明:

[unix_http_server]
file=/tmp/supervisor.sock   ; socket文件的路徑
;chmod=0700                 ; socket文件權(quán)限
;chown=nobody:nogroup       ; socket文件用戶和用戶組
;username=user              ; 連接時(shí)認(rèn)證的用戶名
;password=123               ; 連接時(shí)認(rèn)證的密碼

[inet_http_server]          ; 監(jiān)聽TCP
port=127.0.0.1:9001         ; 監(jiān)聽ip和端口
username=user               ; 連接時(shí)認(rèn)證的用戶名
password=123                ; 連接時(shí)認(rèn)證的密碼

[supervisord]
logfile=/var/log/supervisord.log ; log目錄
logfile_maxbytes=50MB        ; log文件最大空間
logfile_backups=10           ; log文件保持的數(shù)量
loglevel=info                ; log級(jí)別
pidfile=/var/run/supervisord.pid
nodaemon=false               ; 是否非守護(hù)進(jìn)程態(tài)運(yùn)行
minfds=1024                  ; 系統(tǒng)空閑的最少文件描述符
minprocs=200                 ; 可用的最小進(jìn)程描述符
;umask=022                   ; 進(jìn)程創(chuàng)建文件的掩碼
;identifier=supervisor       ; supervisord標(biāo)識(shí)符
;directory=/tmp              ; 啟動(dòng)前切換到的目錄
;nocleanup=true              ; 啟動(dòng)前是否清除子進(jìn)程的日志文件
;childlogdir=/tmp            ; AUTO模式,子進(jìn)程日志路徑
;environment=KEY="value"     ; 設(shè)置環(huán)境變量

[rpcinterface:supervisor]    ; XML_RPC配置
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; 連接的socket路徑
;username=chris               ; 用戶名
;password=123                 ; 密碼
prompt=mysupervisor           ; 輸入用戶名和密碼時(shí)的提示符
;history_file=~/.sc_history   ; 歷史操作記錄存儲(chǔ)路徑

[include]                     ; 包含文件,將每個(gè)進(jìn)程配置為一個(gè)文件并包含
files = /etc/supervisor/*.ini ; 多個(gè)進(jìn)程的配置文件

這部分我們不需要做太多的配置修改,如果需要開啟 WEB 終端監(jiān)控,則需要配置并開啟 inet_http_server 項(xiàng)。

進(jìn)程配置部分

Supervisor 需管理的進(jìn)程服務(wù)配置,示例如下:

[program:work]                      ; 服務(wù)名,例如work
command=php -r "sleep(10);exit(1);" ; 帶有參數(shù)的可執(zhí)行命令
process_name=%(process_num)s        ; 進(jìn)程名,當(dāng)numprocs>1時(shí),需包含%(process_num)s
numprocs=2                          ; 啟動(dòng)進(jìn)程的數(shù)目數(shù)
;directory=/tmp                     ; 運(yùn)行前切換到該目錄
;umask=022                          ; 進(jìn)程掩碼
;priority=999                       ; 子進(jìn)程啟動(dòng)關(guān)閉優(yōu)先級(jí)
autostart=true                      ; 子進(jìn)程是否被自動(dòng)啟動(dòng)
startsecs=1                         ; 成功啟動(dòng)幾秒后則認(rèn)為成功啟動(dòng)
;startretries=3                     ; 子進(jìn)程啟動(dòng)失敗后,最大嘗試啟動(dòng)的次數(shù)
autorestart=unexpected            ; 子進(jìn)程意外退出后自動(dòng)重啟的選項(xiàng),false,?unexpected,?true。unexpected表示不在exitcodes列表時(shí)重啟
exitcodes=0,2                     ; 期待的子程序退出碼
;stopsignal=QUIT                  ; 進(jìn)程停止信號(hào),可以為TERM,HUP,INT,QUIT,KILL,USR1,or?USR2等信號(hào),默認(rèn)為TERM
;stopwaitsecs=10                  ; 發(fā)送停止信號(hào)后等待的最大時(shí)間
;stopasgroup=false                ; 是否向子進(jìn)程組發(fā)送停止信號(hào)
;killasgroup=false                ; 是否向子進(jìn)程組發(fā)送kill信號(hào)
;redirect_stderr=true             ; 是否重定向日志到標(biāo)準(zhǔn)輸出
stdout_logfile=/data/logs/work.log ; 進(jìn)程的stdout的日志路徑
;stdout_logfile_maxbytes=1MB      ; 日志文件最大大小
;stdout_logfile_backups=10
;stdout_capture_maxbytes=1MB
;stderr_logfile=/a/path           ; stderr的日志路徑
;stderr_logfile_maxbytes=1MB
;stderr_logfile_backups=10
;stderr_capture_maxbytes=1MB
;environment=A="1",B="2"          ; 子進(jìn)程的環(huán)境變量
;serverurl=AUTO                   ; 子進(jìn)程的環(huán)境變量SUPERVISOR_SERVER_URL 
通常將每個(gè)進(jìn)程的配置信息配置成獨(dú)立文件,并通過 include 模塊包含,這樣方便修改和管理配置文件。
啟動(dòng)

配置完成后,啟動(dòng) supervisord 守護(hù)服務(wù):

$ supervisord -c /etc/supervisor/supervisord.conf

常用的命令參數(shù)說明:

-c:指定配置文件路徑

-n:是否非守護(hù)態(tài)運(yùn)行

-l:日志文件目錄

-i:唯一標(biāo)識(shí)

查看 supervisord 啟動(dòng)情況:

$ ps -ef | grep "supervisor"
root  24901  1  0 Sep23 ? 00:00:30 /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
$ netstat -tunpl
tcp 0 0 127.0.0.1:9001  0.0.0.0:*  LISTEN  24901/python
監(jiān)控進(jìn)程

Supervisor 提供了多種監(jiān)控服務(wù)的方式,包括 supervisorctl 命令行終端、Web 端、XML_RPC 接口多種方式。

命令終端

直接使用 supervisorctl 即可在命令行終端查看所有服務(wù)的情況,如下:

$ supervisorctl 
work:0      RUNNING   pid 31313, uptime 0:00:07
work:1      RUNNING   pid 31318, uptime 0:00:06
# -u 用戶名 -p 密碼

supervisorctl 常用命令列表如下;

status:查看服務(wù)狀態(tài)

update:重新加載配置文件

restart:重新啟動(dòng)服務(wù)

stop:停止服務(wù)

pid:查看某服務(wù)的 pid

tail:輸出最新的 log 信息

shutdown:關(guān)閉 supervisord 服務(wù)

Web

在配置中開啟 inet_http_server 后,即可通過 Web 界面便捷地監(jiān)控進(jìn)程服務(wù)了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31078.html

相關(guān)文章

  • centos 7 使用supervisor 管理laravel 隊(duì)列

    摘要:使用開發(fā)的一個(gè)服務(wù),是系統(tǒng)下的一個(gè)進(jìn)程管理工具。一切就緒后,我們使用如下命令就可以啟動(dòng)隊(duì)列進(jìn)程的監(jiān)聽了這里值得注意的是,如果處理隊(duì)列的代碼更改了,需要重啟的隊(duì)列管理才能生效。 supervisor使用python開發(fā)的一個(gè)client/server服務(wù),是linux/unix系統(tǒng)下的一個(gè)進(jìn)程管理工具。它可以很方便的監(jiān)聽、停止、重啟一個(gè)或多個(gè)進(jìn)程。用supervisor管理的進(jìn)程,打你...

    only_do 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<