java - 程序怎么執(zhí)行shell中top或者ping命令
問題描述
有時(shí)會(huì)用程序執(zhí)行shell命令。 但如果我執(zhí)行類似top或者ping這樣的命令?這種命令不會(huì)直接終止,會(huì)一直在執(zhí)行。我怎么獲取他的執(zhí)行狀態(tài)以及怎么終止他呢?
問題解答
回答1:top和ping這類的命令都有終止的選項(xiàng)可以用,如ping的-c指定發(fā)送包的次數(shù),top的-bn指定輸出模式及輸出次數(shù)。
回答2:一般這種持續(xù)輸出的命令, 都已經(jīng)有個(gè)控制打印次數(shù)的參數(shù)控制, 譬如top就是 -n num來指定打印num次, 而ping 則是通過-c num來指定打印num次; 可以通過對(duì)應(yīng)的選項(xiàng), 來設(shè)置命令的執(zhí)行次數(shù), 如果命令不支持這樣的選項(xiàng)控制, 那應(yīng)該只能通過獲取該進(jìn)程的pid, 然后通過kill操作去發(fā)送終止信號(hào), 使其終止運(yùn)行
回答3:首先,top 和 ping 命令都是可以終止的:按 q 可以退出 top 命令,按 Ctrl-C 可以退出 ping
你可以用 subprocess 來啟動(dòng) shell 程序,然后通過 PIPE 向 STDIN 寫字符串,然后就可以了控制這些 shell 程序了吧。
相關(guān)文章:
1. thinkphp3 count()方法必須加上字段?2. python中return 語句與 分支語句連用問題3. mysql 5個(gè)left關(guān)鍵 然后再用搜索條件 幾千條數(shù)據(jù)就會(huì)卡,如何解決呢4. python - angular route 與 django urls 沖突怎么解決?5. 這是什么情況???6. 微信內(nèi)網(wǎng)頁上傳圖片問題7. 非root安裝MySQL5.6報(bào)錯(cuò),求助!!!8. 輸入地址報(bào)以下截圖錯(cuò)誤,怎么辦?9. node.js - nodejs中mysql子查詢返回多行結(jié)果怎么處理?10. mysql - 瞬間流量很高的網(wǎng)站,要頻繁的插入數(shù)據(jù)到數(shù)據(jù)庫,應(yīng)該怎么解決這個(gè)問題?
