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

时间:2018-11-22 05:41:48

标签: python exit schedule

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

2 个答案:

答案 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()