Heim > Fragen und Antworten > Hauptteil
Manchmal wird ein Programm verwendet, um Shell-Befehle auszuführen. Was aber, wenn ich einen Befehl wie top oder ping ausführe? Ein solcher Befehl wird nicht direkt beendet, sondern immer ausgeführt. Wie erhalte ich den Ausführungsstatus und wie beende ich ihn?
漂亮男人2017-05-17 10:05:20
一般这种持续输出的命令, 都已经有个控制打印次数的参数控制, 譬如top
就是 -n num
来指定打印num次, 而ping
则是通过-c num
来指定打印num次; 可以通过对应的选项, 来设置命令的执行次数, 如果命令不支持这样的选项控制, 那应该只能通过获取该进程的pid
, 然后通过kill
操作去发送终止信号, 使其终止运行
黄舟2017-05-17 10:05:20
首先,top 和 ping 命令都是可以终止的:按 q 可以退出 top 命令,按 Ctrl-C 可以退出 ping
你可以用 subprocess 来启动 shell 程序,然后通过 PIPE 向 STDIN 写字符串,然后就可以了控制这些 shell 程序了吧。