我在 Linux shell 脚本中经常遇到这样的情况:如果某个特定命令运行时间过长(例如由于网络问题),shell 脚本应该中止运行该命令。
在 shell 脚本中运行超时命令有哪些最佳实践?例如,通过某种监控命令运行命令,并以秒为单位指定特定最大运行时间?
我正在寻找的是类似“timeout -s 300'此命令行'”的内容
Cron 解决方案是不可能的,也不是可接受的答案。
答案1
有一个名为 timeout 的软件包,基于 Debian,sudo apt-get install timeout。问题是该命令仅在规定的时间内运行,因此如果您正在 ssh 并执行 timeout 300 ssh[电子邮件保护],该任务将在 300 秒后终止。话虽如此,StackOverflow 上有一个类似的问题,其中有一个脚本实现可能会做到这一点。
尽管我昨天再次尝试了这个并且一切正常,所以这取决于其后面跟的命令。