微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在某些小时之间暂停或停止python程序不基于经过的时间!

如何解决如何在某些小时之间暂停或停止python程序不基于经过的时间!

我试图找到一种使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: # 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语句,也许下面发布的解决方案对我的程序有用吗?...

How to schedule python script to exit at given time

解决方法

首先,创建一个cron作业(由于GPIO调用,我相信您在Linux上),以便每天晚上21:30启动脚本。

30 21 * * * python /path/to/python/script

然后,在4:30创建第二个cron作业,以杀死正在运行程序的任何现有进程。

30 4 * * * pkill -f /path/to/python/script # Will need to be edited to the actual process name that runs.

Killing a process by matching name

,

Python Pause https://github.com/jgillick/python-pause/ 支持暂停直到某个日期时间。

Java Threads 2n​​d edition 也有一个作业调度器的示例代码;也许您可以将其用作蓝图。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。