“服务网络重新启动”超时

“服务网络重新启动”超时

我有一个在 fedora 22 上运行的脚本,我正在其中重新启动服务网络,作为故障排除调用的一部分service network restart。我想检查该命令是否执行时间太长。如果花费太长时间,我想输出一条消息“重新启动网络服务时出错”。否则我想继续剧本。

答案1

您可以使用timeoutcommand 在给定的超时时间内运行命令或脚本。与此类似的东西:

timeout 10m command 

它会等待命令在 10 分钟内完成,否则会终止该命令并以状态 124 退出。然后您可以检查该命令的退出状态timeout并根据它打印相应的消息。请参阅此处了解更多信息:超时联机帮助页。

如果您不想终止长命令,请执行以下操作:

(( sleep $TIMEOUT; echo "command took so long!" ) & exec $COMMAND )

超时时,这将打印消息,但命令继续执行。

答案2

如果您不关心编辑原始系统脚本,则可以在脚本内创建一个类似的函数

timeoutf(){
    #If hangs 1 minute, dies..
    sleep 1m 
    kill $PPID  
}

timeoutf&

相关内容