我正在尝试制作一个脚本来使用 busybox 快速测试 docker 内部的网络连接是否正常工作。
所有这些测试在 5 秒后都未能超时(它们花了 30 秒才超时):
docker run busybox wget -T 5 google.com
docker run busybox timeout 5 wget google.com
timeout 5 docker run busybox wget google.com
唯一有效的就是以交互方式进入 busybox。 5秒后确实成功终止。但我试图以编程方式而不是交互方式来完成此操作。
docker run -it busybox
/ # timeout 5 wget google.com
Terminated
为什么超时在交互式 shell 中起作用,但在非交互 shell 中不起作用?
我正在 Ubuntu 18:04 虚拟机上运行。
答案1
这有效:使用-s9
发送 SIGKILL。
timeout -s9 5 docker run busybox wget google.com