<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Supervisor 是一款 Python 開發的程序管理系統,允許使用者監視和控制 Linux 上的程序,能將一個普通命令列程序變為後臺守護行程,異常退出時能自動重啟
詳細介紹查閱:Supervisor Introduction
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
將最後一部分改為
[include] # 因為我這裡是放在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介面沒多大用處,就是如果想啟動、暫停程序是,不需要敲命令而已。
vim supervisord.conf
取消註釋
[inet_http_server] port=*:9001 ; 此處改為*便於偵錯
重啟 supervisord
supervisorctl reload
瀏覽器存取:linux_ip:9001.
新增某組態檔,重新載入
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的文章就介紹到這了,更多相關Python Supervisor程序管理內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45