如何在python中停止正在运行的PING

时间:2017-04-26 07:18:12

标签: python python-2.7

我被赋予了一整天ping两个站点的任务,所以我创建了一个包含两个函数的函数,里面是ping1()和ping2()。当ping1()运行时,5分钟后应运行下一个ping2() 但我的问题是,它没有进入下一个功能。 我试过这段代码:

def run():

    start_time = datetime.datetime.now()
    tenmins_add = datetime.timedelta(seconds = 5)
    add = start_time + tenmins_add

    print(start_time.strftime("%H:%M:%S"))
    print(add.strftime("%H:%M:%S"))
    def ping1():
        os.system("echo START PING 1 " + str(start_time.strftime("%H:%M:%S")) + "!~")
        os.system("ping www.google.com")
        os.system("echo PING 1")

    def ping2():
        os.system("echo START PING 2 " + str(start_time.strftime("%H:%M:%S")) + "!~")
        os.system("ping www.facebook.com")
        os.system("echo END OF PING 2")

    ping1()
    ping2()

while True:
    os.system("clear")
    run()
    if datetime.datetime.now().strftime("%H:%M:%S") == add.strftime("%H:%M:%S"):
        ping1().terminate()
    else:
        pass

我不知道我的代码中出了什么问题。

1 个答案:

答案 0 :(得分:1)

代码将卡在os.system("ping www.google.com")

您需要做的是os.system("ping -i 1 -c 10 www.google.com")

-i设置每次ping之间的间隔

-c设置ping数

因此,给定的示例运行10秒,然后移动到下一行代码