一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Windows下使用 Supervisor 重新拉起崩潰的Python程序

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-21 11:23 ? 次閱讀

我們用Python定時跑一些自動化程序的時候會出現(xiàn)程序崩潰的情況。此時如果你本人不在電腦面前,或者沒有留意到程序的崩潰,沒有及時重新拉起程序,會造成或大或小的損失。

本文將教你如何在 Windows 下使用 Supervisor 重新拉起崩潰的Python程序。

1.準備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install supervisor-win

如果你出現(xiàn) “DLL load failed: 找不到指定的程序” 的報錯,請重新安裝pywin32:

pip install pywin32==223

2.編寫自重啟配置

接下來,你需要編寫一個讓你的Python程序自動運行,遇到報錯自動重啟的配置:

[program:cancel]
command=G:Anaconda3envs	dx_easytraderpython.exe D://CODE//tdx_easytrader//dataserver.py
    
[supervisord]
nodaemon=true

[supervisorctl]

前兩行就是你的程序運行命令,在上面的例子中,program: 后面的關鍵詞是你自定義的程序名,我的Python位于:

G:Anaconda3envstdx_easytraderpython.exe

我想要自重啟的腳本位于:

D://CODE//tdx_easytrader//dataserver.py

此外,后面的三行是必須配置的,按我的默認寫法即可。

編寫完成后將配置命名為 supervisord.conf 保存于任何地方,可以是項目目錄下,也可以是一個重要的配置目錄文件夾。

然后執(zhí)行以下命令啟動 supervisord:

supervisord -c D:CODEtdx_easytradersupervisord.conf

注意 -c 參數(shù)后就是你的 supervisord.conf 的絕對路徑。啟動完畢顯示:

2022-06-27 19:58:54,809 INFO process group added: 'cancel'
2022-06-27 19:58:54,810 INFO supervisord started with pid 28472
2022-06-27 19:58:54,815 INFO Spawned: 'cancel' with pid 27220
2022-06-27 19:58:55,830 INFO success: cancel entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

意思是,supervisord 進程已經(jīng)啟動,pid為28472。我命名為cancel的Python進程也已經(jīng)啟動,pid為27220。我們在任務管理器中可以查看到這兩個進程:

圖片

3.測試

接下來我們測試一下它能否自動重啟,讓我們強殺 27220 這個進程,觀察終端輸出:

2022-06-27 19:58:54,815 INFO Spawned: 'cancel' with pid 27220
2022-06-27 19:58:55,830 INFO success: cancel entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-06-27 20:02:58,077 INFO exited: cancel (exit status 1; not expected)
2022-06-27 20:02:58,590 INFO Spawned: 'cancel' with pid 16640
2022-06-27 20:02:59,603 INFO success: cancel entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

可以看到, 20:02:58秒的時候 cancel 程序意外退出(exit status 1; not expected),然后supervisord重新幫我們拉起了一個cancel程序,pid為16640:

圖片

測試成功,程序成功自重啟。

Supervisor不僅會把日志輸出到終端中,在你運行命令的目錄中,它還會生成supervisord.log, 這里面也保存了所有運行日志:

圖片

當然,在上方我們supervisord的配置里,你也能配置日志輸出位置、最大大小、分片數(shù)量等:

[supervisord]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = info
pidfile = /tmp/supervisord.pid
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • WINDOWS
    +關注

    關注

    4

    文章

    3598

    瀏覽量

    90709
  • 程序
    +關注

    關注

    117

    文章

    3817

    瀏覽量

    82180
  • Supervisor
    +關注

    關注

    0

    文章

    54

    瀏覽量

    12730
  • python
    +關注

    關注

    56

    文章

    4822

    瀏覽量

    85876
收藏 人收藏

    評論

    相關推薦

    windows7怎樣安裝whl文件(python

    windows7怎樣安裝whl文件(python
    發(fā)表于 01-23 13:51

    Windows 8.1中的安裝崩潰

    Lovis,該程序的工作方式與Ronja相同。另外值得報道的是,我還嘗試在Lovis上安裝ISE 10.1。這沒用。然后我嘗試簡單地從Ronja復制文件,在Windows 7安裝它,然后啟動'ISE
    發(fā)表于 12-06 10:36

    windows安裝python 在linux安裝python 在masOS安裝python

    、Brython、Pyston等版本,有興趣的讀者可以自行了解。Windows環(huán)境可以在Python官方網(wǎng)站下載到PythonWindows安裝
    發(fā)表于 06-11 16:59

    何在WINDOWS系統(tǒng)使用tensorflow來下圍棋呢

    1、如何在WINDOWS系統(tǒng)安裝tensorflow并使用tensorflow來下圍棋呢 tensorflow0.12版本支持windows,需要
    發(fā)表于 06-02 16:17

    有誰知道wroom的開發(fā)板版本如何在拉起捆扎針的情況將引導加載程序置于串行模式?

    不需要拉起 GPIO2)有誰知道 wroom 的開發(fā)板版本如何在拉起捆扎針的情況將引導加載程序置于串行模式?我是否必須編寫自定義引導加載
    發(fā)表于 03-01 07:17

    有誰知道wroom的開發(fā)板版本如何在拉起捆扎針的情況將引導加載程序置于串行模式?

    不需要拉起 GPIO2)有誰知道 wroom 的開發(fā)板版本如何在拉起捆扎針的情況將引導加載程序置于串行模式?我是否必須編寫自定義引導加載
    發(fā)表于 04-13 07:00

    Windows CEGPIO驅(qū)動程序的設計與應用

    Windows CE 流接口設備驅(qū)動程序是一種基本的設備驅(qū)動程序。本文以S3C2410 開發(fā)板中的GPIO 流接口驅(qū)動為例,說明了驅(qū)動程序所包含的函數(shù)以及如
    發(fā)表于 01-06 16:02 ?48次下載

    何在DOS安裝Windows Me

    何在DOS安裝Windows Me 一、準備工作:1.WindowsMe(或98)啟動盤一張。內(nèi)含format.com(硬盤分區(qū)格式化命令)。2.準備好Microsoft Windo
    發(fā)表于 03-01 10:36 ?5923次閱讀

    微軟推出Outlook桌面崩潰修復程序

    Microsoft的Windows Outlook電子郵件應用程序在啟動時就開始崩潰,今天全世界的許多用戶都在使用它。Office 365商業(yè)用戶報告說,Outlook似乎在最近更新之后啟動了,然后立即
    的頭像 發(fā)表于 07-16 16:11 ?2819次閱讀

    何在Linux環(huán)境實現(xiàn)Python環(huán)境的搭建

    本文檔的主要內(nèi)容詳細介紹的是如何在Linux環(huán)境實現(xiàn)Python環(huán)境的搭建。
    發(fā)表于 08-24 12:12 ?14次下載
    如<b class='flag-5'>何在</b>Linux環(huán)境<b class='flag-5'>下</b>實現(xiàn)<b class='flag-5'>Python</b>環(huán)境的搭建

    使用python開發(fā)windows的應用程序詳細說明

    本人以前一直用的是C++,MFC ,畢業(yè)到了公司以后,公司用python 做流程,我順便最近研究了一python 開發(fā)windows 應用程序
    發(fā)表于 08-25 15:57 ?9次下載
    使用<b class='flag-5'>python</b>開發(fā)<b class='flag-5'>windows</b>的應用<b class='flag-5'>程序</b>詳細說明

    重新內(nèi)存分配的改變讓Firefox崩潰次數(shù)降低70%

    ,要了解為什么在 Windows 上運行的應用程序與其他操作系統(tǒng)相比更容易耗盡內(nèi)存產(chǎn)生崩潰,就必須了解 Windows 如何處理內(nèi)存。 所有
    的頭像 發(fā)表于 11-29 15:08 ?824次閱讀

    python調(diào)用windows命令

    Python是一種強大的編程語言,可以用于開發(fā)各種不同類型的應用程序。其中一個常見的用途是使用Python調(diào)用Windows命令來執(zhí)行特定的任務。在本文中,我們將詳細討論如何使用
    的頭像 發(fā)表于 11-29 14:34 ?1283次閱讀

    如何使用linuxgdb來調(diào)試python程序

    如何使用linuxgdb來調(diào)試python程序? 在Linux,可以使用GDB(GNU調(diào)試器)來調(diào)試Python
    的頭像 發(fā)表于 01-31 10:41 ?3041次閱讀

    零基礎入門:如何在樹莓派上編寫和運行Python程序?

    在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運行一個簡單的
    的頭像 發(fā)表于 03-25 09:27 ?312次閱讀
    零基礎入門:如<b class='flag-5'>何在</b>樹莓派上編寫和運行<b class='flag-5'>Python</b><b class='flag-5'>程序</b>?