timeout
命令:timeout 15s command
注意:在某些系统上,您需要安装 coreutils
,在其他系统上,它可能缺失或具有不同的命令行参数。请参阅由 @ArjunShankar 发布的备用解决方案。基于该解决方案,您可以封装那个样板代码并创建自己的便携式 timeout
脚本或小型 C 应用程序来完成同样的任务。
timeout
命令是从哪里来的?我在我所使用的任何RHEL或Ubuntu服务器上都没有它。(事实上,在FreeBSD或OS X上也没有。) - ghoticoreutils
,该命令可用作gtimeout
。 - joeln有些机器上没有安装或不可用timeout
。这种情况下,您可以将进程放到后台运行;它的PID将作为$!
存储;然后休眠所需的时间,最后杀死它:
some_command arg1 arg2 &
TASK_PID=$!
sleep 15
kill $TASK_PID
在这个网址中,提到了不止一种解决方法来实现这个目标。