成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

怎么管理Python管理神器,Supervisor解答

89542767 / 540人閱讀


  Supervisor是什么呢?它作為一種進(jìn)程管理的軟件,可以對其用來監(jiān)視以及進(jìn)行控制Linux上面的服務(wù)器進(jìn)程。它很神奇,能夠?qū)⒁粋€普通的命令,轉(zhuǎn)化成后臺的進(jìn)程,甚至如果我們遇到退出的話,也會強(qiáng)制的進(jìn)行退出,具體怎么運(yùn)作呢?下面就給大家進(jìn)行詳細(xì)的解答。


  一、簡介


  Supervisor是一款Python開發(fā)的進(jìn)程管理系統(tǒng),允許用戶監(jiān)視和控制Linux上的進(jìn)程,能將一個普通命令行進(jìn)程變?yōu)楹笈_守護(hù)進(jìn)程,異常退出時能自動重啟


  二、安裝


  Supervisor支持Linux和Mac,不支持Windows


  本文系統(tǒng)為:centos,supervisor==4.2.4

   pip3 install supervisor

  安裝完成后,在Python bin目錄下面會有這樣幾個文件。

   ls /usr/local/Python38/bin

   echo_supervisord_conf
   supervisorctl
   supervisord

  注:由于python bin目錄是加入了環(huán)境變量,所以可以直接執(zhí)行這幾個文件。


  三、創(chuàng)建配置文件


  1.首先建個目錄,存放配置文件:mkdir supervisord。

   echo_supervisord_conf > supervisord/supervisord.conf

  若報錯-bash:/etc/supervisord.conf:Permission denied,需要切換到root用戶。


  2.創(chuàng)建子進(jìn)程配置文件路徑

   mkdir -p supervisor/conf.d

  后面我們的任務(wù),我們想把它作為守護(hù)進(jìn)程,都需要一個配置文件,我們把這些配置文件放在conf.d目錄下面。


  3.修改配置文件

   mkdir -p supervisor/conf.d

  將最后一部分改為

   [include]
   # 因為我這里是放在root用戶目錄下,也可以放其它目錄
   files=/root/supervisord/conf.d/*.conf

  四、初試


  1.啟動supervisord

   supervisord -c supervisord/supervisord.conf

  這樣就把supervisord啟動了,我們接下來可以把我們的任務(wù)交給他去守護(hù)了,停止了會幫我們自動重啟。


  查看版本


  2.編寫簡單的Shell腳本

   supervisord -v

  內(nèi)容如下


  簡單運(yùn)行,Ctrl+C退出


  3.創(chuàng)建子進(jìn)程配置文件

   vim supervisor/conf.d/test.conf

  test.conf內(nèi)容如下:

   [program:test]
   command=sh /root/supervisord/test.sh
   priority=999                              ; 相對啟動優(yōu)先級,數(shù)值越小越優(yōu)先,默認(rèn)為999
   autostart=true                            ; 在supervisor啟動時自動啟動,默認(rèn)為true
   autorestart=true                          ; 在意外退出時重新啟動,默認(rèn)為true
   startsecs=10                              ; 子進(jìn)程啟動多少秒后狀態(tài)為running則認(rèn)為啟動成功,默認(rèn)為1
   startretries=3                            ; 嘗試啟動的最大次數(shù),默認(rèn)為3
   exitcodes=0,2                             ; 進(jìn)程的預(yù)期退出代碼列表,默認(rèn)為0
   stopsignal=QUIT                           ; 終止進(jìn)程的信號,默認(rèn)為TERM
   stopwaitsecs=10                           ; 在SIGKILL之前等待的最大秒數(shù),默認(rèn)為10
   user=root                                 ; 在某用戶下設(shè)置uid來啟動程序,默認(rèn)不切換用戶
   redirect_stderr=true                      ; 是否重定向stdout和stderr,默認(rèn)為false
   stdout_logfile=/tmp/supervisor.stdout.log  ; stdout的輸出文件,默認(rèn)為AUTO
   stdout_logfile_maxbytes=50MB              ; stdout最大文件大小,默認(rèn)為50MB
   stdout_logfile_backups=10                 ; stdout文件備份數(shù),設(shè)為0則不備份,默認(rèn)為10

  其實(shí)只需要配置3個參數(shù),其它不用管:


  command=sh/root/supervisord/test.sh:我們的子進(jìn)程啟動命令;


  stdout_logfile=/tmp/supervisor.stdout.log:日志;


  program:test:進(jìn)程名為test,如果進(jìn)程哪一天想停止啟動等,需要進(jìn)程名;


  目前文件目錄結(jié)構(gòu)是這樣的:

   yum install tree
   tree supervisord

   supervisord
  ├── conf.d
  │   └── test.conf
  ├── supervisord.conf
  └── test.sh

  .重新讀取配置并更新子進(jìn)程


  因為我們的supervisord已經(jīng)啟動了,可以通過ps-ef|grep supervisord.conf查看。添加了子進(jìn)程配置文件,需要把它重新加載進(jìn)來:


  先進(jìn)入supervisord目錄:cd supervisord,否則執(zhí)行下面命令會有問題。

  supervisorctl reread

  再次查看進(jìn)程狀態(tài)

  supervisorctl status

  結(jié)果:


  test RUNNING pid 30278,uptime 1:29:41


  名為test的這個進(jìn)程已經(jīng)作為守護(hù)進(jìn)程在后臺運(yùn)行,我們來kill掉他:

   kill 30278

  再執(zhí)行supervisorctl status,會發(fā)現(xiàn)狀態(tài)立馬由starting,不一會變成running,那么supervisord的作用已經(jīng)很明顯了,可以自動幫我們自動監(jiān)控任務(wù)。


  注:對于子進(jìn)程的添加、刪除、啟動、停止相關(guān)命令,見附錄。


  五、Web界面


  web界面沒多大用處,就是如果想啟動、暫停進(jìn)程是,不需要敲命令而已。

   vim supervisord.conf

  取消注釋


  重啟supervisord

   supervisorctl reload

  瀏覽器訪問:linux_ip:9001.

   supervisorctl reload

  附錄:supervisorctl常用命令


  新增某配置文件,重新加載


    supervisorctl reread


  改動某配置文件,重新加載


   supervisorctl update


  重啟supervisord

  

  supervisorctl reload

  

     查看所有進(jìn)程狀態(tài)


   supervisorctl status


  查看指定進(jìn)程狀態(tài)


supervisorctl status<name>


  啟動所有子進(jìn)程


supervisorctl start all


  啟動指定子進(jìn)程


supervisorctl status<name>


  重啟所有子進(jìn)程


 supervisorctl restart all


  重啟指定子進(jìn)程


   supervisorctl restart<name>


  停止所有子進(jìn)程


  supervisorctl stop all


  停止指定子進(jìn)程

  

   supervisorctl stop<name>


  添加子進(jìn)程到進(jìn)程組


   supervisorctl add<name>


  從進(jìn)程組移除子進(jìn)程,需要先stop。注意:移除后,需要使用reread和update才能重新運(yùn)行該進(jìn)程


   supervisorctl reomve<name>


  以上就位大家介紹到這里了,希望可以為各位讀者帶來幫助。

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

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/127619.html

相關(guān)文章

  • 如何在 virtualenv 環(huán)境下搭建 Python Web

    摘要:生產(chǎn)環(huán)境下,自帶的服務(wù)器,無法滿足性能要求。配置前面我們已經(jīng)在系統(tǒng)環(huán)境下安裝了安裝好的二進(jìn)制文件放在文件夾下,接下來使用來管理。參考文章探針安裝部署部署筆記在生產(chǎn)環(huán)境上部署使用詳解本文系工程師編譯整理。 由于字?jǐn)?shù)的限制,其實(shí)本篇文章的全標(biāo)題為 《如何在 virtualenv 環(huán)境下 Django + Nginx + Gunicorn+ Supervisor 搭建 Python Web》...

    roland_reed 評論0 收藏0
  • 如何在 virtualenv 環(huán)境下搭建 Python Web

    摘要:生產(chǎn)環(huán)境下,自帶的服務(wù)器,無法滿足性能要求。配置前面我們已經(jīng)在系統(tǒng)環(huán)境下安裝了安裝好的二進(jìn)制文件放在文件夾下,接下來使用來管理。參考文章探針安裝部署部署筆記在生產(chǎn)環(huán)境上部署使用詳解本文系工程師編譯整理。 由于字?jǐn)?shù)的限制,其實(shí)本篇文章的全標(biāo)題為 《如何在 virtualenv 環(huán)境下 Django + Nginx + Gunicorn+ Supervisor 搭建 Python Web》...

    godiscoder 評論0 收藏0
  • 基于Flask-Angular的項目組網(wǎng)架構(gòu)與部署

    摘要:基于網(wǎng),分享項目的組網(wǎng)架構(gòu)和部署。項目組網(wǎng)架構(gòu)架構(gòu)說明流項目訪問分為兩個流,通過分兩個端口暴露給外部使用數(shù)據(jù)流用戶訪問網(wǎng)站。通過進(jìn)行配置,使用作為異步隊列來存儲任務(wù),并將處理結(jié)果存儲在中。 基于Raindrop網(wǎng),分享項目的組網(wǎng)架構(gòu)和部署。 項目組網(wǎng)架構(gòu) showImg(https://cloud.githubusercontent.com/assets/7239657/1015704...

    kelvinlee 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<