gpt4 book ai didi

python - 使脚本能够在从终端发出命令时自行停止

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:00 25 4
gpt4 key购买 nike

我有一个每天晚上执行的脚本runReports.py。假设由于某种原因脚本执行时间太长,我希望能够通过发出诸如 ./runReports.py stop 这样的命令来从终端停止它。

我尝试通过在发出停止命令时使用脚本创建临时文件来实现此目的。

该脚本在运行每个报告之前检查此文件是否存在。

如果该文件存在,则脚本停止执行,否则继续执行。

但我无法找到一种方法让停止命令的发出者知道脚本已成功停止。大致如下:

$ ./runReports.py stop
Stopping runReports...
runReports.py stopped successfully.

如何实现这一目标?

最佳答案

例如,如果您的脚本循环运行,您可以捕获信号 http://en.wikipedia.org/wiki/Unix_signal并终止进程:

import signal

class SimpleReport(BaseReport):
def __init__(self):
...
is_running = True

def _signal_handler(self, signum, frame):
is_running = False

def run(self):
signal.signal(signal.SIGUSR1, self._signal_handler) # set signal handler
...
while is_running:
print("Preparing report")
print("Exiting ...")

要终止进程只需调用kill -SIGUSR1 procId

关于python - 使脚本能够在从终端发出命令时自行停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28177583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com