欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何定時(shí)自啟動(dòng)與自關(guān)閉一些python腳本

 更新時(shí)間:2025年05月20日 08:52:49   作者:you_get_me_there  
這篇文章主要介紹了如何定時(shí)自啟動(dòng)與自關(guān)閉一些python腳本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

定時(shí)自啟動(dòng)與自關(guān)閉一些python腳本

是windows系統(tǒng),要是linux就好了。

思路是這樣的

首先到早上6點(diǎn)整啟動(dòng)腳本或某個(gè)軟件,然后記錄下對(duì)應(yīng)的pid,等到了晚上18點(diǎn)整的時(shí)候,自動(dòng)根據(jù)pid再殺死對(duì)應(yīng)進(jìn)程。

定時(shí)開(kāi)啟與關(guān)閉用apscheduler,示例代碼如下:

from apscheduler.schedulers.blocking  import BlockingScheduler 

def start_scripts():
	pass
	
def kill_processes():
	pass
	
if __name__ == "__main__":
    
	scheduler = BlockingScheduler()
	# 添加定時(shí)任務(wù)(crontab格式)
	scheduler.add_job(start_scripts, 'cron', hour=6, minute=0   # 啟動(dòng) 
	scheduler.add_job(kill_processes, 'cron', hour=18, minute=0  # 終止 
	print("監(jiān)控程序已啟動(dòng)")
	try:
		scheduler.start() 
	except (KeyboardInterrupt, SystemExit):
		pass 
    

為了保證啟動(dòng)程序的時(shí)候獲取到對(duì)應(yīng)的真實(shí)pid,使用subprocess依賴庫(kù)

import subprocess 


try:
	subprocess.Popen(
		["python", script], 
		cwd="d:/file/script/start.py",
		creationflags=subprocess.CREATE_NEW_CONSOLE)
except Exception as e:
	print(f"啟動(dòng)失?。簕str(e)}")
	
try:
	proc = subprocess.Popen(
		["d:/file/soft/server.exe"], 
		cwd="d:/file/soft/")
	pid = str(proc.pid)
	with open("pid.txt", 'a') as f:         
        f.write(f"server.exe-pid={pid}\n")
except Exception as e:
	print(f"啟動(dòng)失?。簕str(e)}")

	

啟動(dòng)腳本窗口的沒(méi)有在這里獲取pid,是因?yàn)橐坏╅_(kāi)啟新窗口后,通過(guò)proc.pid獲取的無(wú)效,AI說(shuō)是:

  • 在Windows 7及更早版本中,創(chuàng)建新控制臺(tái)時(shí)會(huì)生成conhost.exe 宿主進(jìn)程
  • 返回的PID指向的是控制臺(tái)宿主進(jìn)程,而非實(shí)際目標(biāo)進(jìn)程
  • 新架構(gòu)差異:Windows 8+ 采用了conhost與終端分離的新架構(gòu),而Win7使用傳統(tǒng)模式

總之為了避免這個(gè)情況

我在被啟動(dòng)的python腳本里面讀取pid,使用的psutil庫(kù),如下:

import psutil 

current_process = psutil.Process()
pid = str(current_process.pid)
print(f"當(dāng)前進(jìn)程ID: {pid}")
with open("pid.txt", 'a') as f:         
    f.write(f"script-1-pid={pid}\n") 

這樣就可以避免返回的pid異常問(wèn)題了. 后期等到晚上18點(diǎn)的時(shí)候讀取pid文件,按順序kill即可。

當(dāng)然如果希望每隔一段時(shí)間執(zhí)行一次,可以這樣:

def print_fun():
	print("執(zhí)行時(shí)間:", time.asctime())

scheduler.add_job(print_fun, 'interval', seconds=10)

總結(jié)

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

相關(guān)文章

  • python 讀取.csv文件數(shù)據(jù)到數(shù)組(矩陣)的實(shí)例講解

    python 讀取.csv文件數(shù)據(jù)到數(shù)組(矩陣)的實(shí)例講解

    今天小編就為大家分享一篇python 讀取.csv文件數(shù)據(jù)到數(shù)組(矩陣)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • python2利用wxpython生成投影界面工具的圖文詳解

    python2利用wxpython生成投影界面工具的圖文詳解

    這篇文章主要介紹了python2利用wxpython生成投影界面工具的圖文詳解,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Python異步操作MySQL示例【使用aiomysql】

    Python異步操作MySQL示例【使用aiomysql】

    這篇文章主要介紹了Python異步操作MySQL,結(jié)合實(shí)例形式分析了Python安裝及使用aiomysql針對(duì)mysql數(shù)據(jù)庫(kù)異步操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-05-05
  • python實(shí)現(xiàn)TCPclient的使用示例

    python實(shí)現(xiàn)TCPclient的使用示例

    python實(shí)現(xiàn)TCPclient是一件簡(jiǎn)單的事情,只要通過(guò)socket這個(gè)模塊就可以實(shí)現(xiàn),本文主要介紹了python實(shí)現(xiàn)TCPclient的使用示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 如何使用Python標(biāo)準(zhǔn)庫(kù)進(jìn)行性能測(cè)試

    如何使用Python標(biāo)準(zhǔn)庫(kù)進(jìn)行性能測(cè)試

    這篇文章主要為大家詳細(xì)介紹了如何使用Python標(biāo)準(zhǔn)庫(kù)進(jìn)行性能測(cè)試,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 用Python中的__slots__緩存資源以節(jié)省內(nèi)存開(kāi)銷的方法

    用Python中的__slots__緩存資源以節(jié)省內(nèi)存開(kāi)銷的方法

    這篇文章主要介紹了用Python中的__slots__通過(guò)緩存資源的方式以節(jié)省內(nèi)存開(kāi)銷的方法,且示例代碼非常簡(jiǎn)單,需要的朋友可以參考下
    2015-04-04
  • python基于tkinter點(diǎn)擊按鈕實(shí)現(xiàn)圖片的切換

    python基于tkinter點(diǎn)擊按鈕實(shí)現(xiàn)圖片的切換

    這篇文章主要介紹了python基于tkinter點(diǎn)擊按鈕實(shí)現(xiàn)圖片的切換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python連接和操作Elasticsearch的詳細(xì)指南

    Python連接和操作Elasticsearch的詳細(xì)指南

    Elasticsearch 是一個(gè)強(qiáng)大的搜索引擎,廣泛應(yīng)用于數(shù)據(jù)存儲(chǔ)和搜索場(chǎng)景,通過(guò) Python,我們可以方便地與 Elasticsearch 進(jìn)行交互,本文將詳細(xì)介紹如何在本地使用 Python 連接到服務(wù)器上的 Elasticsearch,并進(jìn)行基本的操作,需要的朋友可以參考下
    2024-12-12
  • Python3 pickle模塊的使用方法詳細(xì)介紹

    Python3 pickle模塊的使用方法詳細(xì)介紹

    pickle提供了一個(gè)簡(jiǎn)單的持久化功能??梢詫?duì)象以文件的形式存放在磁盤(pán)上,pickle序列化后的數(shù)據(jù),可讀性差,人一般無(wú)法識(shí)別,本文詳細(xì)介紹了pickle模塊的使用方法
    2021-10-10
  • Python join()函數(shù)原理及使用方法

    Python join()函數(shù)原理及使用方法

    這篇文章主要介紹了Python join()函數(shù)原理及使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論