有時會用程式執行shell指令。但如果我執行類似top或ping這樣的指令?這種命令不會直接終止,而且會一直執行。我要怎麼獲取他的執行狀態以及怎麼終止他呢?
top和ping这类的命令都有终止的选项可以用,如ping的-c指定发送包的次数,top的-bn指定輸出模式及輸出次數。
top
ping
-c
-bn
一般這種持續輸出的命令, 都已經有個控制打印次數的參數控制, 譬如top就是 -n num来指定打印num次, 而ping 则是通过-c num来指定打印num次; 可以通过对应的选项, 来设置命令的执行次数, 如果命令不支持这样的选项控制, 那应该只能通过获取该进程的pid, 然后通过kill操作去發送終止信號, 使其終止運行
-n num
-c num
pid
kill
首先,top 和 ping 指令都是可以終止的:按 q 可以退出 top 指令,按 Ctrl-C 可以退出 ping
你可以用 subprocess 來啟動 shell 程序,然後透過 PIPE 向 STDIN 寫字串,然後就可以了控制這些 shell 程式了吧。
top
和ping
这类的命令都有终止的选项可以用,如ping
的-c
指定发送包的次数,top
的-bn
指定輸出模式及輸出次數。一般這種持續輸出的命令, 都已經有個控制打印次數的參數控制, 譬如
top
就是-n num
来指定打印num次, 而ping
则是通过-c num
来指定打印num次; 可以通过对应的选项, 来设置命令的执行次数, 如果命令不支持这样的选项控制, 那应该只能通过获取该进程的pid
, 然后通过kill
操作去發送終止信號, 使其終止運行首先,top 和 ping 指令都是可以終止的:按 q 可以退出 top 指令,按 Ctrl-C 可以退出 ping
你可以用 subprocess 來啟動 shell 程序,然後透過 PIPE 向 STDIN 寫字串,然後就可以了控制這些 shell 程式了吧。