小编mar*_*rio的帖子

当进程停止以产生更多输出时终止进程

是否有 shell 工具可以探测子进程是否仍在产生输出,否则在指定的超时后将其杀死?

我正在使用offlineimapGmail 备份,但这非常非常不稳定。由于 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 脚本可能是可行的,但是对于这种情况,是否有一些通用方法?


shell process kill timeout

5
推荐指数
1
解决办法
849
查看次数

标签 统计

kill ×1

process ×1

shell ×1

timeout ×1