卡住进程超时

Timeout for a stuck process

我在 do ... while 中调用一个视频转换过程,循环处理一组文件。

大部分时间它都按预期工作,但偶尔该进程会挂在文件上并且在我终止它之前不会继续运行。 (所以它并不是没有响应 - 只是没用!)

它仍在发送到 stdout 和 stderr,在那里我可以看到它试图一遍又一遍地读取相同的索引。我还可以看到它没有将任何输出写入目标文件(因此它没有做任何有用的事情)。

我可以:

如果视频转换过程是您开发的,那么最好的解决方案是解决无限循环问题。从错误处理的角度来看,或者如果进程是第 3 方的,那么您可以将输出重定向到一个文件,然后定期检查该文件以获取日志中的特定错误消息,然后将其终止。如果进程预期在特定时间范围内处理文件,那么如果转换未在指定时间范围内完成,您可以终止进程。