mar*_*rio 5 shell process kill timeout
是否有 shell 工具可以探测子进程是否仍在产生输出,否则在指定的超时后将其杀死?
我正在使用offlineimap
Gmail 备份,但这非常非常不稳定。由于 IMAP 条件或其他原因,处理会定期停止。该过程需要不断重新启动才能看到任何进展。因此,我目前正在使用:
(ulimit -t 300 ; offlineimap)
Run Code Online (Sandbox Code Playgroud)
在一个循环中。每五分钟重启一次工具;无论。
这有点令人不满意,因为它要么在它实际上仍在执行某些工作时过早地终止该进程,要么在它已经阻塞时仍然等待 4 分钟。我宁愿有类似的东西:
offlineimap > output.log &
stillmakingoutput? --timeout 60 output.log || kill $!
Run Code Online (Sandbox Code Playgroud)
使用自定义 exec/watching 脚本可能是可行的,但是对于这种情况,是否有一些通用方法?