python如何每天在指定时间段运行程序及关闭程序
作者:Lee-Oct
这篇文章主要介绍了python如何每天在指定时间段运行程序及关闭程序问题,具有很好的参考价值,希望对大家有所帮助。
python每天在指定时间段运行程序及关闭程序
场景
程序需要在每天某一时间段内运行,然后在某一时间段内停止该程序。
程序:
from datetime import datetime, time import multiprocessing from time import sleep # 程序运行时间在白天8:30 到 15:30 晚上20:30 到 凌晨 2:30 DAY_START = time(8, 30) DAY_END = time(15, 30) NIGHT_START = time(20, 30) NIGHT_END = time(2, 30) def run_child(): while 1: print("正在运行子进程") def run_parent(): print("启动父进程") child_process = None # 是否存在子进程 while True: current_time = datetime.now().time() running = False # 子进程是否可运行 if DAY_START <= current_time <= DAY_END or (current_time >= NIGHT_START) or (current_time <= NIGHT_END): # 判断时候在可运行时间内 running = True # 在时间段内则开启子进程 if running and child_process is None: print("启动子进程") child_process = multiprocessing.Process(target=run_child) child_process.start() print("子进程启动成功") # 非记录时间则退出子进程 if not running and child_process is not None: print("关闭子进程") child_process.terminate() child_process.join() child_process = None print("子进程关闭成功") sleep(5) if __name__ == '__main__': run_parent()
python定时程序(每隔一段时间执行指定函数)
import os import time def print_ts(message): print "[%s] %s"%(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), message) def run(interval, command): print_ts("-"*100) print_ts("Command %s"%command) print_ts("Starting every %s seconds."%interval) print_ts("-"*100) while True: try: # sleep for the remaining seconds of interval time_remaining = interval-time.time()%interval print_ts("Sleeping until %s (%s seconds)..."%((time.ctime(time.time()+time_remaining)), time_remaining)) time.sleep(time_remaining) print_ts("Starting command.") # execute the command status = os.system(command) print_ts("-"*100) print_ts("Command status = %s."%status) except Exception, e: print e if __name__=="__main__": interval = 5 command = r"ls" run(interval, command)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。