我使用C ++运行外部程序:
_wsystem(exec);
如果运行时间超过n秒,我想终止该进程。我可以用Python这样做:
p = subprocess.Popen(self.temp_exec, shell=True)
cur_time = 0.0
while cur_time < self.time_limit:
if p.poll() != None:
# Kill the process
p.terminate()
break
time.sleep(0.1)
cur_time += 0.1
p ++中p.poll()和p.terminate()的替代方法是什么?
谢谢
P.S。涉及WinAPI的解决方案也是受欢迎的。
答案 0 :(得分:1)
有一个MS knowledge base entry描述如何干净地终止应用程序。基本上如果你只想杀死这个过程并且不关心潜在的副作用,那么你可以使用TerminateProcess
。
检查进程是否仍在运行的Windows API方法是GetExitCodeProcess
。
答案 1 :(得分:0)
答案 2 :(得分:0)
我只能评论Unix,因为那是我最熟悉的平台。
p.poll()
变为kill(pid, 0)
p.terminate()
变为kill(pid, SIGTERM)