Python帮助需要能够在脚本挂起或自动设置tim时重新启动脚本

2024-05-19 00:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有一个python脚本,它完全可以完成我需要它做的事情,但是脚本时不时地会挂起,重新启动它的唯一方法是终止脚本并重新启动它。在

我想知道是否有一种方法可以放入一些命令来重新启动它,比如说每当它挂起或者某个特定的消息出现时,或者甚至只是在计时器上重新启动它,例如:每50秒。在

我不能通过这里提供代码,但如果我们私下交谈,我可以提供。在

如果你的修理有效的话,我愿意付给你一点钱。在

请发电子邮件给我stackoverflow1@shaw.ca在

谢谢!在

编辑:我明白了,好吧-那么有没有可能给我提供一些代码,它会在特定的计时器上重新启动?在

编辑2:好的,谢谢大家的评论-我会和构建它的人联系,看看他们是否可以从头开始重写它,加入一个计时器。在

干杯。在


Tags: 方法代码命令脚本消息编辑电子邮件评论
1条回答
网友
1楼 · 发布于 2024-05-19 00:41:11

如果你想付钱给我,尽管这不是必须的。在

这里:

import time
import threading
import os

def restart():
    time.sleep(50)
    os.execv('/full/path/to/this/script', ['second argument', 'third argument'])

def main():
    t = threading.Thread(target=restart, args=(), name='reset')
    t.start()
    # ... The rest of your code.

如果您有任何您关心的打开的缓冲区(例如stdout),您需要在调用execv之前刷新它们。在

我还没有测试过这段代码,因为我现在手头没有python解释器,但是如果它不能工作我会很惊讶。对execv的调用替换了当前的上下文,因此您不会得到子进程越来越深的层次结构。我所做的就是设置一个“定时器中断处理程序”,以防你好奇,想知道谷歌有什么妙语。对于书呆子来说,不,我知道这东西不能直接处理任何中断。在

sleep的数字参数以秒为单位。我只要求你不要在恶意软件中使用我的代码,除非是出于研究目的。我特别喜欢那样。在

编辑:另外,很多都是从here取来的。在

相关问题 更多 >

    热门问题