Python:在超时后杀死运行java程序的进程

时间:2014-06-09 00:17:57

标签: java python process

我正在使用popen启动java程序。我想在一段时间内运行一个java程序,如果它在超时后仍在运行,则将其终止。我一直在使用提供的here答案,它使用popen.terminate()和thread.join()。似乎python方法已经结束但java进程仍在运行。请帮忙。我使用的是Python 2.7。

1 个答案:

答案 0 :(得分:0)

如果您使用的是现代(最近5年)版本的Linux,您应该能够使用timeout命令:

示例 - 这将持续10秒:

$ sleep 10 

这将持续1秒钟:

$ timeout 1 sleep 10

以下是在Python中使用它的示例:

p1 = Popen(['timeout' '1' 'sleep' '10'], stdout=PIPE)

您可以通过检查值124的返回代码来判断程序是否过早退出,否则退出代码是您运行的java程序的代码。还有其他参数,例如您要发送的终止信号的类型等。请使用man timeout查看更多信息。