最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解supervisor使用教程

 更新時間:2017年11月21日 10:10:37   投稿:laozhang  
supervisor是用python寫的一個進程管理工具,用來控制進程,本文為大家介紹一下supervisor使用教程,希望能夠幫助到你。

A Process Control System 使用b/s架構、運行在類Unix系統(tǒng)上一個進程監(jiān)控管理系統(tǒng)它可以使進程以daemon方式運行,并且一直監(jiān)控進程,在意外退出時能自動重啟進程。

安裝

Supervisor是使用python開發(fā)的一個進程管工具,安裝和使用都非常簡單。使用 pip 或者 easy_install 安裝會非常方便,自動解決依賴關系。
– sudo pip install supervisor
– sudo easy_install supervisor

pip的安裝請參考 python自動安裝pip

初識

安裝完成后系統(tǒng)會增加幾個命令

supervisord 用于啟動supervisor服務。

supervisorctl 用于管理supervisor服務,管理使用supervisor啟動的進程。

安裝好supervisor后需要手動的生成配置文件。

echo_supervisord_conf | sudo tee /etc/supervisord.conf
supervisor默認讀取的配置文件為/etc/supervisord.conf,建議將配置文件放在此位置。

我們先簡單的查看一下 supervisord.conf,配置文件格式和ini格式配置文件相同,由節(jié)、鍵、值組成,配置文件注釋為。

[unix_http_server]

此節(jié)是配置連接supervisord的sock的文件,包括sock文件路徑,用戶認證。使用supervisorctl命令進行管理進程時,使用的就是此sock文件。默認保持開啟,如將此項關閉 [inet_http_server] 則無法使用。 [inet_http_server]
此節(jié)配置supervisor的web管理界面,配置監(jiān)聽的地址和端口,已經(jīng)用戶認證。默認為關閉狀態(tài)。如需開啟則將此節(jié)注釋去掉,然后修改相應的鍵值。 [supervisord]

此節(jié)為配置supervisor服務參數(shù),例如日志,日志大小等一些參數(shù)。 [supervisorctl]

用于配置supervisorctl管理程序參數(shù),例如sock文件路徑,需要和[unix_http_server]相同。

[include]此節(jié)作用為包含其他配置文件,本文建議開啟此項,包含額外的配置文件,將需要管理的進程配置寫入到額外的配置文件,不需要經(jīng)常編輯主配置文件,保證安全性。修改代碼為

[include]
files = /etc/supervisor.d/*.conf

讀取/etc/supervisor.d/文件夾下所有后綴為conf的文件。

第一步配置第一個使用supervisord管理的程序

我們使用 python2.7 來作為演示,使用SimpleHTTPServer模塊方便快速的啟動一個http server。

1,創(chuàng)建配置文件 /etc/supervisor.d/test1.conf,寫入一下內容

[program:simplehttpserver]
command=/usr/bin/env python2.7 -m SimpleHTTPServer 20080

這是一個最簡單的例子,第一行指定當前配置的程序名稱。第二行程序運行命令(20080 為 http server端口號)。

2,第一個程序已經(jīng)配置好,接下來就可以啟動supervisord來查看一下效果。

輸入命令 sudo supervisord 即可啟動服務。

很多機器會打印出幾行信息,這并不代表程序出錯,意思是

“supervisord 是使用root身份來啟動的,讀取默認位置的配置文件,如果需要讀取其他位置配置文件請使用 -c 參數(shù)”

3,現(xiàn)在使用ps -ef | grep python來檢查一下剛才配置的程序是否已經(jīng)啟動。到此為止我們的第一步已經(jīng)完成。

詳細配置

[program:theprogramname]
command=/bin/cat    ; 程序運行命令,建議使用絕對路徑。
process_name=%(program_name)s ; 程序名稱,可用的變量有 `group_name`, `host_node_name`, `process_num`, `program_name`, `here`(配置文件目錄)。 一般程序需要運行多個副本的情況會使用。后面會有例子。
numprocs=1     ; 程序運行的副本個數(shù),默認為1,如果值大于1,則`process_name` 必須包含 `%(process_num)s`
numprocs_start=0    ; `%(process_num)s`起始數(shù)字,默認為0
00=/tmp    ; 程序運行的所在目錄,相當于先cd到指定目錄,然后運行程序。
umask=022      ; umask for process (default None)
priority=999     ; 程序操作的的優(yōu)先級,例如在start all/stop all,高優(yōu)先級的程序會先關閉和重啟。
autostart=true    ; 在supervisord啟動時自動啟動,默認為true
startsecs=1     ; 程序啟動前等待時間等待時間。默認為1。
startretries=3    ; 嘗試重啟最大次數(shù)。默認為3。
autorestart=unexpected  ; 是否自動重啟,可選參數(shù)為 false, unexpected, true。如果為false則不自動重啟,如果為unexpected表示如果程序退出信號不在 `exitcodes` 中,則自動重啟。默認為unexpected
exitcodes=0,2     ; 程序退出碼。配合`autorestart`使用。默認為 0,2
stopsignal=QUIT    ; 殺死進程是發(fā)送的信號,默認為TREM。
stopwaitsecs=10    ; 發(fā)送SIGKILL信號前最大等待時間。默認為10。
user       ; 以指定用戶身份啟動程序。默認為當前用戶。
stopasgroup=false    ; 是否向子進程發(fā)送停止信號,這對于Flask的debug模式很有用處,如果設置為true,則不向子進程發(fā)送停止信號。默認為false
killasgroup=false    ; 是否向子進程發(fā)送kill信號,默認為false
redirect_stderr=false   ; 將錯誤輸出定向到標準輸出,默認為false
stdout_logfile=/a/path  ; 標準輸出日志路徑,可選參數(shù)為 `自定義` `AUTO` `NONE`,`自定義`將日志寫到自定義路徑,可用的變量有`group_name`, `host_node_name`, `process_num`, `program_name`, `here`(配置文件目錄);`NONE`不創(chuàng)建日志;`AUTO` 又supervisord自動選擇路徑,并且當supervisord服務重新啟動時原來自動創(chuàng)建的日志以及日志的備份文件會被刪除。默認為AUTO
stdout_logfile_maxbytes=1MB ; 標準輸出日志單個文件最大大小,如果超過指定大小會將日志文件備份,可用的單位 KB MB GB。如果設置為0則表示不限制文件大小。默認為50MB
stdout_logfile_backups=10  ; 標準輸出日志文件最大備份數(shù)。默認為10
stdout_capture_maxbytes=1MB ; 當進程處于“stdout capture mode”模式下寫入到FIFO隊列最大字節(jié)數(shù),可用單位 KB MB GB。默認為0,詳細說明見[capture-mode](http://supervisord.org/logging.html#capture-mode)
stdout_events_enabled=false ; 
        ;以下配置項配置錯誤輸出的日志參數(shù)。和上面標準輸出配置相同。
stderr_logfile=/a/path  ;
stderr_logfile_maxbytes=1MB ;
stderr_logfile_backups=10  ;
stderr_capture_maxbytes=1MB ;
stderr_events_enabled=false ;
environment=A="1",B="2"  ; 環(huán)境變量設置,可用的變量有 `group_name`, `host_node_name`, `process_num`, `program_name`, `here`。 默認為空。
serverurl=AUTO    ; override serverurl computation (childutils)

必要參數(shù)只有 command,其他未可選參數(shù)。 [program:x] 自定義的程序名不能重復 配置示例管理tornado應用

需要啟動4個進程,分別監(jiān)聽四個連續(xù)端口(20081 – 20084)。

將錯誤輸出定向到標準輸出,每個端口標準輸出寫入到不同文件中,單個文件最大50MB,最多保存3個備份。

啟動前等待3秒。

supervisord啟動時自動啟動。程序運行出錯自動重啟,最大嘗試重啟次數(shù)3次。

[program:tornado-test]
command=/usr/bin/env python2.7 /home/user/tornado-test.py --port=%(process_num)s
process_name=%(program_name)s_port=%(process_num)s
numprocs=4
numprocs_start=20081
redirect_stderr=true
stdout_logfile=/tmp/tornado-test-%(process_num)s.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=3
autorestart=true
startsecs=3
startretries=3

管理nginx

nginx默認運行狀態(tài)是后臺運行程序。supervisord不能管理此類程序需要,需要修改nginx主配置文件。

在nginx最外層加入daemon off;

最簡單的配置。

[program:nginx]
command=/usr/sbin/nginx ;建議使用絕對路徑。

supervisorctl

supervisor進程管理工具,可以方便啟動停止進程,查看程序日志,重新載入配置文件。

如果supervisord配置文件不再默認位置,使用supervisorctl工具時需要指定配置文件路徑 supervisordctl -c 配置文件路徑

常用命令

supervisordctl status 查看進程運行狀態(tài) supervisordctl start 進程名 啟動進程 supervisordctl stop 進程名 關閉進程 supervisordctl restart 進程名 重啟進程 supervisordctl update 重新載入配置文件 supervisordctl shutdown 關閉supervisord supervisordctl clear 進程名 清空進程日志 supervisordctl 進入到交互模式下。使用help查看所有命令。

start stop restart + all 表示啟動,關閉,重啟所有進程。

如果一個進程啟動了多個副本,例如上文tornado-test。

關閉所有副本

相關文章

  • Python pandas對excel的操作實現(xiàn)示例

    Python pandas對excel的操作實現(xiàn)示例

    這篇文章主要介紹了Python pandas對excel的操作實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 用Python中的字典來處理索引統(tǒng)計的方法

    用Python中的字典來處理索引統(tǒng)計的方法

    這篇文章主要介紹了用Python中的字典來處理索引統(tǒng)計的方法,字典的使用是Python學習當中的基礎知識,本文則是相關的一個小實踐,需要的朋友可以參考下
    2015-05-05
  • Scrapy基于selenium結合爬取淘寶的實例講解

    Scrapy基于selenium結合爬取淘寶的實例講解

    今天小編就為大家分享一篇Scrapy基于selenium結合爬取淘寶的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 淺談如何使用Python控制手機(一)

    淺談如何使用Python控制手機(一)

    這篇文章主要為大家介紹了如何使用Python控制手機,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • python使用matplotlib:subplot繪制多個子圖的示例

    python使用matplotlib:subplot繪制多個子圖的示例

    這篇文章主要介紹了python使用matplotlib:subplot繪制多個子圖的示例,幫助大家更好的利用python繪制圖像,感興趣的朋友可以了解下
    2020-09-09
  • 對python中的裝包與解包實例詳解

    對python中的裝包與解包實例詳解

    今天小編就為大家分享一篇對python中的裝包與解包實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 使用Python創(chuàng)建自助搶單插件的完整步驟

    使用Python創(chuàng)建自助搶單插件的完整步驟

    文章介紹了如何使用Python編寫一個自助搶單插件,該插件可以幫助用戶監(jiān)控特定網(wǎng)站上的商品信息,并在條件滿足時自動下單,文章涵蓋了從項目概述、技術架構、項目流程到環(huán)境準備、網(wǎng)絡請求、數(shù)據(jù)解析、用戶界面設計和定時任務的詳細步驟
    2024-11-11
  • python命令行引導用戶填寫可用的ip地址和端口號實現(xiàn)

    python命令行引導用戶填寫可用的ip地址和端口號實現(xiàn)

    這篇文章主要為大家介紹了python命令行引導用戶填寫可用的ip地址和端口號實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Python3 獲取文件屬性的方式(時間、大小等)

    Python3 獲取文件屬性的方式(時間、大小等)

    這篇文章主要介紹了Python3 獲取文件屬性的方式(時間、大小等),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python基礎教程之udp端口掃描

    python基礎教程之udp端口掃描

    開發(fā)一個程序,用于獲取局域網(wǎng)中開啟snmp服務的主機ip地址列表,并寫入相應文件以便其它程序使用。下面是實現(xiàn)方法
    2014-02-02

最新評論

墨脱县| 高邑县| 镇赉县| 尼勒克县| 东山县| 东乡县| 卢湾区| 喀什市| 顺昌县| 凤翔县| 乌拉特后旗| 民丰县| 峨边| 敖汉旗| 齐河县| 溆浦县| 高要市| 盘山县| 六安市| 浦城县| 垦利县| 桐柏县| 诸暨市| 泉州市| 舟山市| 寿宁县| 同心县| 衡东县| 彩票| 石首市| 长葛市| 蛟河市| 曲阳县| 内黄县| 鄂伦春自治旗| 邓州市| 扎鲁特旗| 罗平县| 怀仁县| 旌德县| 大足县|