exec()和我的愚蠢

时间:2012-07-03 13:27:40

标签: java linux

我只想分享我的愚蠢以及我如何耗尽所有磁盘空间,大约90 GB,并附带几行代码。

我想要做的就是列出包含一组字符串的目录(包括子目录)中的所有文件,并将信息保存在文件中。我认为发现会有所帮助,我也测试了它......

find . -exec grep -i "TEXT_TO_FIND" '{}' \; -print >TEXT_TO_FIND.txt

但是,我需要拾取字符串以动态搜索并动态构建命令字符串,在确定构建命令字符串的正确方法后,我运行了我的程序。我以为exec()会等 来自操作系统的任务已完成的信号。我认为不是。即使它确实如此,我的程序也永远不会完成,因为它也会搜索我通过重定向创建的文件, 输出和grep无限期地运行,直到使用了所有磁盘空间。

我只想确认Runtime.getRuntime().exec(cmd);不等待来自操作系统的任何信号。

1 个答案:

答案 0 :(得分:1)

Runtime.getRuntime().exec(cmd)不等待来自操作系统的任何信号。如果要在下级程序完成之前暂停程序,请尝试以下操作:

Process p = Runtime.getRuntime().exec(cmd);
p.waitfor();