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

Windows環(huán)境中Python應(yīng)用服務(wù)自啟動(dòng)及其監(jiān)控問(wèn)題

 更新時(shí)間:2024年06月26日 15:31:16   作者:時(shí)尚IT男  
這篇文章主要介紹了Windows環(huán)境中Python應(yīng)用服務(wù)自啟動(dòng)及其監(jiān)控問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

需求描述

  • 在windows服務(wù)器環(huán)境中,python應(yīng)用服務(wù)在服務(wù)器重啟時(shí),能自動(dòng)啟動(dòng);
  • 在任務(wù)管理器中,能區(qū)分監(jiān)控python應(yīng)用服務(wù)(默認(rèn)都是python的情況,無(wú)法區(qū)分多個(gè)python進(jìn)程);
  • 監(jiān)控python應(yīng)用服務(wù)進(jìn)程,當(dāng)應(yīng)用服務(wù)掛掉后,重新啟動(dòng)服務(wù)。

1. Python應(yīng)用服務(wù)自啟動(dòng)

1.1. 啟動(dòng)時(shí)運(yùn)行批處理文件

Windows 10/Windows Server 201X具有一個(gè)名為“啟動(dòng)”的已知文件夾,系統(tǒng)每次啟動(dòng)開(kāi)始自動(dòng)運(yùn)行應(yīng)用程序、快捷方式和腳本時(shí)都會(huì)檢查該文件夾,而無(wú)需額外配置。

要在Windows啟動(dòng)時(shí)運(yùn)行腳本,先使用Windows+R快捷鍵打開(kāi)“運(yùn)行”對(duì)話框。

鍵入命令:shell:startup

C:\Users\xiaoyw\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

寫(xiě)段測(cè)試代碼,做成批處理,放到“啟動(dòng)”文件夾下。

批處理,命名為startup.bat:

d:
cd \01workspace\study
python TestStartup.py

python示例代碼:

import datetime

now = datetime.datetime.now()
dtime = now.strftime("%Y-%m-%d %H:%M:%S")
print('延遲時(shí)間是:', dtime)

with open('startup.txt','w') as f:
    f.write(dtime + ", test ok!")

1.2. 使用任務(wù)計(jì)劃程序運(yùn)行批處理文件

使用任務(wù)計(jì)劃程序在特定時(shí)間自動(dòng)運(yùn)行批處理文件。

1.3. 注冊(cè)服務(wù)

注冊(cè)服務(wù)的優(yōu)勢(shì)就在于可以開(kāi)機(jī)自啟動(dòng),而在windows上,python不能直接將腳本注冊(cè)為服務(wù),需要將其先打包成exe,再將exe注冊(cè)為服務(wù)。

打包exe,使用pyinstaller打包,安裝好pyinstaller包后,在cmd/pycharm的終端里運(yùn)行如下代碼打包。

2. 應(yīng)用服務(wù)監(jiān)控

2.1. 自定義python腳本在windows下的進(jìn)程名

在windows環(huán)境中,部署多個(gè)python應(yīng)用服務(wù)時(shí),在任務(wù)管理器中監(jiān)控進(jìn)程時(shí),任務(wù)名稱(chēng)都是python.exe,無(wú)法識(shí)別是哪個(gè)具體任務(wù),造成維護(hù)困難。

簡(jiǎn)單解決方法是按需拷貝(copy)python.exe文件(python.exe大小只有100k),然后重命名成為pvforecast_py.exe(或者隨便你想要的名字),然后你寫(xiě)一個(gè)批處理文件,內(nèi)容是start python_myapp1.exe myapp.py。

然后你運(yùn)行批處理文件,你就會(huì)發(fā)現(xiàn)在任務(wù)管理器中的詳細(xì)信息頁(yè)面中出現(xiàn)了python_myapp1.exe。

python.exe大小只有幾十k,多copy幾個(gè)也無(wú)所謂。比起build成exe還是簡(jiǎn)單很多。

批處理文件名稱(chēng)為PVForecastAPScheduler.bat,代碼如下:

@echo off
D:
cd D:\Python\PVMicrogrid\PVSystem
start pvforecast_py PVForecastAPScheduler.py

測(cè)試驗(yàn)證代碼如下:

import datetime
import pytz
from apscheduler.schedulers.blocking import BlockingScheduler

def test():
    now = datetime.datetime.now()
    dtime = now.strftime("%Y-%m-%d %H:%M:%S")
    print('延遲時(shí)間是:', dtime)

    with open('startup1.txt','w') as f:
        f.write(dtime + ", test ok!")
    
scheduler = BlockingScheduler(timezone=pytz.timezone("Asia/Shanghai") )


scheduler.add_job(test, 'cron', second='10', misfire_grace_time=60, id='job1')
try:
    scheduler.start()
except (KeyboardInterrupt, SystemExit):
    pass  

2.2. 守護(hù)進(jìn)程

有時(shí)會(huì)遇到斷網(wǎng)、硬件設(shè)備掉線等情況,需要重新啟動(dòng)服務(wù),覺(jué)得較為麻煩。想仿照l(shuí)inux下的腳本,寫(xiě)一個(gè)windows下的腳本,守護(hù)進(jìn)程,自動(dòng)檢查自啟動(dòng),或發(fā)出報(bào)警。

windows下的腳本為monitor.bat文件,下面以啟動(dòng)***.exe文件為例:

@echo off
:start
choice /t 5 /d y /n >nul
tasklist|find /i "pvforecast_py.exe"
if %errorlevel%==0 (
echo "yes"
) else (
echo "No"
start pvforecast_py.exe  ****.py
)
goto start

其中,

	###定時(shí)5s
	choice /t 5 /d y /n >nul     
	 ###如果存在該進(jìn)程
	if %errorlevel%==0 ( 
	###如果不存在,則自行啟動(dòng)
	start pvforecast_py.exe  ****.py

3. 把應(yīng)用程序與批處理文件加入到安全白名單中

加入到白名單中的文件目錄,文件,安全防護(hù)工具將信任該軟件,可以直接使用。

以360安全衛(wèi)士為例,在信任區(qū)添加python文件目錄,以及啟動(dòng)文件夾中的批處理文件。

4. 實(shí)踐方案

最初,使用任務(wù)計(jì)劃程序方式,自動(dòng)啟動(dòng)python應(yīng)用服務(wù),由于受到安全衛(wèi)士的阻止,沒(méi)有找到易操作維護(hù)任務(wù)計(jì)劃程序方式,現(xiàn)改為在啟動(dòng)中部署自動(dòng)啟動(dòng)python用于服務(wù),以及增加監(jiān)控方法,提高運(yùn)維效率。

最后的批處理文件(buildw.bat)如下:

chcp 65001
copy d:\python\python38\python.exe d:\python\python38\pvforecast_py.exe
copy d:\python\python38\python.exe d:\python\python38\pvweather24_py.exe
copy d:\python\python38\python.exe d:\python\python38\pvweather_py.exe
copy d:\python\python38\python.exe d:\python\python38\pvenergy_py.exe

copy D:\Python\PVMicrogrid\PVSystem\PVForecastAPScheduler.bat "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\PVForecastAPScheduler.bat"
copy D:\Python\PVMicrogrid\PVSystem\PVTrainAPScheduler.bat "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\PVTrainAPScheduler.bat"
copy D:\Python\PVMicrogrid\PVSystem\PVAPScheduler.bat "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\PVAPScheduler.bat"
copy D:\Python\PVMicrogrid\EnergyOptimization\EnergyAPScheduler.bat "%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\EnergyAPScheduler.bat"

以管理員身份進(jìn)入CMD命令行窗口:

D:\>buildw.bat

相關(guān)批處理命令解釋如下:

注:在 Windows 批處理中,如果路徑中含有中文字符,可能會(huì)出現(xiàn)亂碼的情況。

在批處理文件開(kāi)頭添加以下語(yǔ)句:

chcp 65001

這個(gè)命令可以將命令行窗口的字符編碼設(shè)置為 UTF-8,從而支持中文字符。

注:如果文件路徑中含有空格,則批處理命令中,使用雙引號(hào)引起來(lái)。

5. 其他

也可以使用所有用戶(hù)的啟動(dòng)目錄:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

用管理員權(quán)限用戶(hù)啟動(dòng)目錄,所有用戶(hù)的啟動(dòng)目錄,批處理都執(zhí)行。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pycharm如何debug for循環(huán)里面的錯(cuò)誤值(推薦)

    pycharm如何debug for循環(huán)里面的錯(cuò)誤值(推薦)

    一般debug時(shí),在for循環(huán)里面的話,需要自己一步一步點(diǎn),如果循環(huán)幾百次那種就比較麻煩,此時(shí)可以采用try except的方式來(lái)解決,這篇文章主要介紹了pycharm如何debug for循環(huán)里面的錯(cuò)誤值,需要的朋友可以參考下
    2024-07-07
  • 這三個(gè)好用的python函數(shù)你不能不知道!

    這三個(gè)好用的python函數(shù)你不能不知道!

    作為21世紀(jì)最流行的語(yǔ)言之一,Python當(dāng)然有很多有趣的功能值得深入探索和研究.今天通過(guò)理論和實(shí)際例子來(lái)討論,需要的朋友可以參考下
    2021-06-06
  • pycharm?console?打印中文為亂碼問(wèn)題及解決

    pycharm?console?打印中文為亂碼問(wèn)題及解決

    這篇文章主要介紹了pycharm?console?打印中文為亂碼問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python 發(fā)送和接收ActiveMQ消息的實(shí)例

    python 發(fā)送和接收ActiveMQ消息的實(shí)例

    今天小編就為大家分享一篇python 發(fā)送和接收ActiveMQ消息的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 手把手教你如何使python變?yōu)榭蓤?zhí)行文件

    手把手教你如何使python變?yōu)榭蓤?zhí)行文件

    對(duì)于exe可執(zhí)行文件,相信大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于如何使python變?yōu)榭蓤?zhí)行文件的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • python解析xml文件實(shí)例分析

    python解析xml文件實(shí)例分析

    這篇文章主要介紹了python解析xml文件的方法,實(shí)例分析了Python針對(duì)XML文件節(jié)點(diǎn)及字段的獲取技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • Python?asyncio的一個(gè)坑

    Python?asyncio的一個(gè)坑

    這篇文章主要介紹了Python?asyncio的一個(gè)坑,文章從Python編程錯(cuò)誤開(kāi)始介紹,改變與好多變不成中常犯的錯(cuò)誤,我們今天就來(lái)分析分析吧,需要的下伙伴也可以參考一下
    2021-12-12
  • Python中實(shí)現(xiàn)常量(Const)功能

    Python中實(shí)現(xiàn)常量(Const)功能

    這篇文章主要介紹了Python中實(shí)現(xiàn)常量(Const)功能,python語(yǔ)言本身沒(méi)有提供const,本文使用一個(gè)類(lèi)來(lái)實(shí)現(xiàn)常量定義功能,并介紹了使用方法,需要的朋友可以參考下
    2015-01-01
  • Python3.4學(xué)習(xí)筆記之 idle 清屏擴(kuò)展插件用法分析

    Python3.4學(xué)習(xí)筆記之 idle 清屏擴(kuò)展插件用法分析

    這篇文章主要介紹了Python3.4 idle 清屏擴(kuò)展插件用法,簡(jiǎn)單分析了idle清屏的幾種方法及idle清屏插件的相關(guān)使用技巧,需要的朋友可以參考下
    2019-03-03
  • Python中if-else的語(yǔ)法用法示例代碼

    Python中if-else的語(yǔ)法用法示例代碼

    Python中的if-else決策控制是重要的一種流程控制,顧名思,Python中的決策允許我們?yōu)樘囟Q策運(yùn)行特定的代碼塊,這篇文章主要介紹了Python中if-else語(yǔ)法用法的相關(guān)資料,需要的朋友可以參考下
    2025-07-07

最新評(píng)論

左云县| 金寨县| 五大连池市| 南安市| 绵竹市| 博客| 永和县| 合川市| 米泉市| 霞浦县| 新干县| 侯马市| 高邑县| 金塔县| 柳林县| 同江市| 定西市| 缙云县| 城市| 县级市| 龙口市| 佛教| 随州市| 平乡县| 循化| 麦盖提县| 麻栗坡县| 邳州市| 甘肃省| 南康市| 阿图什市| 麻城市| 轮台县| 永丰县| 大化| 乳山市| 辉县市| 观塘区| 安义县| 中江县| 金平|