我有一个 python 闹钟脚本,它需要在某个时间叫醒我。当我上床睡觉并让它运行时,我使用的装有 Linux Mint 的笔记本电脑在一段时间不活动后会自行挂起。如何阻止我的脚本从被停止并保持运行?我的笔记本电脑在我的房间里,我需要合上它的盖子,因为它的灯光很烦人。这是我的脚本。
import time
import sys
import webbrowser
alarm_HH = raw_input("Enter the hour you want to wake up at\n")
alarm_MM = raw_input("Enter the minute you want to wake up at\n")
print("You want to wake up at ", alarm_HH)
while True:
now = time.localtime()
if now.tm_hour == int(alarm_HH) and now.tm_min == int(alarm_MM):
webbrowser.open_new_tab("http://www.repeatmyvids.com/watch?v=SXLplRtMNfg&kmdom=youtube")
break
else:
timeout = 60 - now.tm_sec
if raw_input("Want me to stop?"):
break
[编辑]
好的,所以我想通了。我安装了 python xlib 模块,这是一个可以安装的低级 python 库sudo aptitude install python-xlib
。我添加了几行代码来移动鼠标指针以防止挂起或休眠,这样我的脚本仍然可以在盖子关闭且没有来自任何地方的输入的情况下工作。
d = display.Display()
s = d.screen()
root = s.root
root.warp_pointer(500,500)
d.sync()
我添加了其中的一些,现在代码看起来像这样。
import time
import sys
import webbrowser
from Xlib import X, display
alarm_HH = input("Enter the hour you want to wake up at\n")
alarm_MM = input("Enter the minute you want to wake up at\n")
print("You want to wake up at ", alarm_HH)
while True:
now = time.localtime()
if now.tm_hour == int(alarm_HH) and now.tm_min == int(alarm_MM):
webbrowser.open_new_tab("http://www.repeatmyvids.com/watch?v=SXLplRtMNfg&kmdom=youtube")
break
else:
d = display.Display()
s = d.screen()
root = s.root
root.warp_pointer(500,500)
d.sync()
time.sleep( 5 )
root.warp_pointer(250,250)
d.sync()
time.sleep( 5 )
root.warp_pointer(100,100)
d.sync()
time.sleep( 5 )
root.warp_pointer(250,250)
d.sync()
感谢 EngHamoud 给了我移动指针以防止挂起的想法。