2012-06-28 165 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按名称或用户或组选择正确的流程,您可以使其运行更便宜。