当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")
由于我从未编码过,所以效果和外观一样好。
答案 0 :(得分:0)
我以前从未使用过子流程,我的代码完全基于您发布的代码可以工作的假设。
您可以尝试:
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
。