如何安排 python 脚本在给定时间退出

How to schedule python script to exit at given time

我需要安排一个 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()。请帮忙。谢谢

尝试给自己发送信号: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()

要在线程内关闭整个程序,可以使用os._exit()。调用sys.exit()只会退出线程,不会退出整个程序。