【问题标题】:How to schedule python script to exit at given time如何安排python脚本在给定时间退出
【发布时间】:2018-11-22 05:41:48
【问题描述】:

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

【问题讨论】:

  • 如何判断脚本没有退出?你能提供更多关于发生了什么的信息吗?

标签: python exit schedule


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-11-27
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 2021-10-19
      相关资源
      最近更新 更多