2012-06-28 178 views
0

我正在研究一個Java程序,該程序應該儘快重複殺死兩個進程,因爲它們在殺死時不斷重啓。當然,它不應該使用太多的CPU時間。我在Python中編寫了幾乎相同的程序,並且使用5%左右的CPU可以很好地工作。
我開始使用Runtime.exec"ps -ax"來列出所有正在運行的進程,然後在字符串中搜索不需要的進程的名稱,然後用"killall -9" + process_name運行exec來終止它。這只是我能想到的第一種方式,任何想法都是值得讚賞的。
但是,當我執行代碼我的電腦保持運行熱和一些時間測試後,我發現exec命令需要大約15至25毫秒。現在爲什麼需要這麼長時間才能完成這項工作?
順便說一句我用的是mac os,不關心這個解決方案是不是平臺無關的。快速運行shell命令的方法

+1

你爲什麼要這樣做? –

+1

首先停止進程重啓會更好嗎? – tofarr

+0

我不知道爲什麼你需要做這樣的事情。但是,如果你真的必須,爲什麼選擇Java?它不適合這種任務。 –

回答

1

我同意Java絕對不是這份工作的正確工具。我也同意其他人的看法,首先這看起來很愚蠢。如果是我,我會專注於讓守護進程無法在第一時間運行。

我只會寫一個bash腳本,它具有您需要的所有功能,並且可以節省一些過程創建時間。你可以將ps的輸出提供給grep,以獲得你需要消除的進程,然後通過它來殺死。

如果您通過use ps parameters按名稱或用戶或組選擇正確的流程,您可以使其運行更便宜。