Ping timeout Twi时重新启动程序

2024-06-01 10:16:47 发布

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

当ping返回“请求超时”超过两次时,是否有方法在后台执行持续ping并重新启动应用程序

我们有一个无线问题,当连接超时时,它会冻结手持扫描仪上的telnet会话

我目前所拥有的是从其他帖子中拼凑而来的:

import os
import subprocess

subprocess.Popen([r"C:\tester.exe"])

hostname = "google.com"
response = os.system("ping -n 1 " + hostname)

if response == 0:
    print (hostname, 'is up!')
else:
    print (hostname, 'is down!')
    os.system("taskkill /im tester.exe")

这和它看起来一样好,因为我以前从未编写过代码


Tags: 方法import应用程序isosresponsepingexe
1条回答
网友
1楼 · 发布于 2024-06-01 10:16:47

我以前从未使用过子流程,我的代码完全基于您发布的代码可以工作的假设

你可以试试:

import os
import subprocess
import time

def start_subprocess():
    subprocess.Popen([r"C:\tester.exe"])

 hostname = "google.com"
 start_subprocess()

while True:
    response = os.system("ping -n 1 " + hostname)
    if response == 0:
        print (hostname, ' is up!')
        time.sleep(2)
    else:
        response = os.system("ping -n 1 " + hostname)
        if response == 0:
            print(hostname, ' is up AGAIN')
        else:
            print (hostname, ' is down!')
            os.system("taskkill /im tester.exe")
            time.sleep(2)
            start_subprocess()

这将启动子流程并进入无限循环,在该循环中,每2秒ping一次响应。 如果响应是否定的,它将检查另一个响应。如果再次没有响应,它将终止进程,等待2秒并重新启动tester.exe

相关问题 更多 >