python执行cmd命令,怎么让他执行类似Ctrl+C效果将其结束命令?
怪我咯
怪我咯 2017-04-18 10:31:07
0
6
997

python执行cmd命令,怎么让他执行Ctrl+C的效果结束命令?
我在用ping监控一个服务器的网络状态,我执行了ping命令后,他会一直这么ping下去,不停止,怎么让他在10秒后执行ctrl+c的效果

def re(cmd):
    while True:
        os.system(cmd);
re("ping 192.168.1.1 -t")

他会这样一直ping下去,想了半天也想不出怎么让他10秒后执行ctrl+c结束的执行效果,请教大神,怎么让他执行结束命令;
10秒后停止命令,类似执行ctrl+c的效果;

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(6)
巴扎黑

Hanya gunakan kill

迷茫

os.system mempunyai kawalan yang sangat lemah, anda memerlukan kaedah .kill modul subproses untuk menghantar isyarat.

Tetapi jika ia hanya ping, mengapa anda tidak membiarkannya ping 10 kali sahaja? nak buat apa?

Peter_Zhu
[root@jenkins  xxxx]# time ping baidu.com -w 10s
PING baidu.com (220.181.57.217) 56(84) bytes of data.
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=1 ttl=52 time=4.07 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=2 ttl=52 time=26.9 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=3 ttl=52 time=6.78 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=4 ttl=52 time=12.9 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=5 ttl=52 time=3.86 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=6 ttl=52 time=3.30 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=7 ttl=52 time=5.63 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=8 ttl=52 time=11.2 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=9 ttl=52 time=4.30 ms
64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=10 ttl=52 time=4.17 ms

--- baidu.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9013ms
rtt min/avg/max/mdev = 3.300/8.328/26.972/6.954 ms

real    0m10.006s
user    0m0.003s
sys    0m0.006s

Saya tidak tahu sama ada saya boleh memenuhi keperluan anda

Ty80

Masalah utama ialah perintah yang dilaksanakan tidak pernah kembali, dan os.system tidak dapat menentukan sama ada perintah itu telah dilaksanakan dan dilaksanakan dengan jayanya
Jika anda boleh mencuba arahan cmd yang mudah, bolehkah anda mencubanya? os.system('mulakan ping www.baidu .com -t')

左手右手慢动作

Daftarsignal.SIGINTIsyarat

PHPzhong

Saya mencubanya, dan saya mungkin boleh menulisnya seperti ini:

import time

start = end = time.time()
def re(cmd):
    while (end - start) < 10:
        os.system(cmd);
        end = time.time()
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan