我需要安排一个Python脚本,该脚本可以在给定的时间退出并自行杀死它。为了进行调度,我使用的是Python schedule
,下面是代码:
import schedule
from threading import Thread
import time
import sys
def exit_data():
print("Exiting")
sys.exit()
def exit_data_thread():
schedule.every().day.at('13:20').do(exit_data)
while True:
schedule.run_pending()
time.sleep(1)
def main():
Thread(target=exit_data_thread).start()
while True:
time.sleep(1)
main()
函数exit_data()
在给定时间运行,并显示Exiting
,但不退出。它仅打印Exiting
,然后继续运行。我还使用了quit
而不是sys.exit()
。请帮忙。谢谢
答案 0 :(得分:1)
要关闭线程中的整个程序,可以使用os._exit()
。调用sys.exit()
仅会退出线程,而不会退出整个程序。
答案 1 :(得分:0)
尝试向自己发送信号:p
import schedule
from threading import Thread
import time
import sys
import os
import signal
def exit_data():
print("Exiting")
# sys.exit()
os.kill(os.getpid(), signal.SIGTERM)
def exit_data_thread():
schedule.every(3).seconds.do(exit_data)
while True:
schedule.run_pending()
time.sleep(1)
def main():
Thread(target=exit_data_thread).start()
while True:
time.sleep(1)
main()