中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python進程管理神器Supervisor怎么使用

發布時間:2022-07-28 16:02:22 來源:億速云 閱讀:204 作者:iii 欄目:編程語言

本篇內容主要講解“Python進程管理神器Supervisor怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python進程管理神器Supervisor怎么使用”吧!

Python進程管理神器Supervisor怎么使用

一、簡介

Supervisor 是一款 Python 開發的進程管理系統,允許用戶監視和控制 Linux 上的進程,能將一個普通命令行進程變為后臺守護進程,異常退出時能自動重啟

二、安裝

Supervisor 支持 Linux 和 Mac,不支持 Windows
本文系統為: centos,supervisor==4.2.4

pip3 install supervisor

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

ls /usr/local/Python38/bin

echo_supervisord_conf
supervisorctl
supervisord

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

三、創建配置文件

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

echo_supervisord_conf > supervisord/supervisord.conf

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

2.創建子進程配置文件路徑

mkdir -p supervisor/conf.d

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

3.修改配置文件

vim supervisord/supervisord.conf

將最后一部分改為

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

四、初試

1.啟動 supervisord

supervisord -c supervisord/supervisord.conf

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

查看版本

supervisord -v

2.編寫簡單的 Shell 腳本

vim supervisord/test.sh

內容如下

#!/bin/bash
while : 
do
    echo `date '+%Y-%m-%d %H:%m:%S'`
    sleep 1
done

簡單運行,Ctrl + C 退出

3.創建子進程配置文件

vim supervisor/conf.d/test.conf

test.conf內容如下:

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

其實只需要配置3個參數,其它不用管:

  • command=sh /root/supervisord/test.sh: 我們的子進程啟動命令;

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

  • program:test:進程名為test,如果進程哪一天想停止啟動等,需要進程名;

目前文件目錄結構是這樣的:

yum install tree
tree supervisord

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

4.重新讀取配置并更新子進程

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

先進入supervisord目錄: cd supervisord,否則執行下面命令會有問題。

supervisorctl reread

再次查看進程狀態

supervisorctl status

結果:

test     RUNNING   pid 30278, uptime 1:29:41

名為test的這個進程已經作為守護進程在后臺運行,我們來kill掉他:

kill 30278

再執行supervisorctl status,會發現狀態立馬由starting,不一會變成running,那么supervisord的作用已經很明顯了,可以自動幫我們自動監控任務。

注:對于子進程的添加、刪除、啟動、停止相關命令,見附錄。

五、Web 界面

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

vim supervisord.conf

取消注釋

[inet_http_server]
port=*:9001                ; 此處改為*便于調試

重啟 supervisord

supervisorctl reload

瀏覽器訪問:linux_ip:9001.

附錄:supervisorctl 常用命令

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

supervisorctl reread

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

supervisorctl update

重啟 supervisord

supervisorctl reload

查看所有進程狀態

supervisorctl status

查看指定進程狀態

supervisorctl status <name>

啟動所有子進程

supervisorctl start all

啟動指定子進程

supervisorctl start <name>

重啟所有子進程

supervisorctl restart all

重啟指定子進程

supervisorctl restart <name>

停止所有子進程

supervisorctl stop all

停止指定子進程

supervisorctl stop <name>

添加子進程到進程組

supervisorctl add <name>

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

supervisorctl reomve <name>

到此,相信大家對“Python進程管理神器Supervisor怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漳州市| 自贡市| 田东县| 尉犁县| 石景山区| 独山县| 西平县| 晋江市| 澳门| 常州市| 庆安县| 九龙坡区| 临朐县| 儋州市| 苏尼特左旗| 长葛市| 嘉义县| 太和县| 鲁山县| 大竹县| 绥江县| 泊头市| 方正县| 淳安县| 石台县| 阜阳市| 大连市| 阜城县| 巴彦县| 桦甸市| 化隆| 徐州市| 专栏| 吉首市| 古田县| 栾城县| 增城市| 麻阳| 东至县| 安塞县| 山阴县|