如何在特定时间之间暂停或停止python程序(不基于运行时间!)
我试图找到一种让python程序持续运行的方法,但要确保主脚本仅在夜间处于“活动”状态(例如,在21:30和04:30之间) 背景:我的程序记录运动激活视频并激活泛光灯 主要节目段如下: …我现在每天晚上都在运行这个程序,然后在早上用Ctrl-C进行杀戮如何在特定时间之间暂停或停止python程序(不基于运行时间!),python,python-3.x,python-multithreading,scheduling,exit,Python,Python 3.x,Python Multithreading,Scheduling,Exit,我试图找到一种让python程序持续运行的方法,但要确保主脚本仅在夜间处于“活动”状态(例如,在21:30和04:30之间) 背景:我的程序记录运动激活视频并激活泛光灯 主要节目段如下: …我现在每天晚上都在运行这个程序,然后在早上用Ctrl-C进行杀戮 try: signal.signal(signal.SIGHUP,SigHandler) # proper exit for SIGHUP (terminal hangups) while GPIO.input(PIR_PIN)==1: #
try:
signal.signal(signal.SIGHUP,SigHandler) # proper exit for SIGHUP (terminal hangups)
while GPIO.input(PIR_PIN)==1: # Loop until PIR output is stabilised at 0
pass
GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=MotionDetected)
signal.pause() #pauses main program forever & waits for PIR Rising Edge unless interrupted
except KeyboardInterrupt:
print("")
finally:
GPIO.output(16, GPIO.LOW) #floodlight off
GPIO.cleanup()
是否有一种方法可以定期检查并行线程中的时间,如果时间在某个小时之间,则暂停程序
如果我在try语句之前添加thread语句,下面发布的解决方案是否适用于我的程序
首先,创建一个cron作业(我相信您使用Linux是因为GPIO调用),每天晚上21:30启动脚本
3021***python/path/to/python/script
然后,在4:30创建第二个cron作业,以终止运行程序的任何现有进程
30 4***pkill-f/path/to/python/script需要编辑为实际运行的进程名。
通常情况下,它应该在操作系统级别处理。时间模块和时间。sleep()是您所需的工具,这里是一个完整的tuto@Cyber技术,它无法工作,因为主线程暂停并等待事件。它无法同时检查等待输入的时间。谢谢@jarcobi889。是的,Linux操作系统。我将进一步探讨cron方法,但是这里的问题/挑战是使用kill命令让程序优雅地退出。(即,关闭泛光灯,如果已经在录制视频,则完成录制,并在退出前清除GPIO状态)对此方法有何想法?您可以使用该模块检测终止中断,并使用该模块设置最终状态,如完成视频录制并在退出前关闭泛光灯。谢谢-如果成功,将进一步探索该模块并在此处发布最终代码:-)